2012年9月11日 星期二

@Scripts.Render("~/bundles/jqueryval") 引用次數要剛剛好一次

在執行 ASP.NET MVC ajax 新增資料時,發生了重覆 insert的事情。

為什麼呢?原來是重複引用了 @Scripts.Render("~/bundles/jqueryval"). (在 View 中用了一次,在 layout page 中又一次 )

產生的 html code 如下

<script src="/App/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="/App/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/App/Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>

兩次會有什麼效果呢?就是執行一次Request,結果會出現2次的 Request. 如下圖所示。

SNAGHTML4eedc9

如果該引用這些 js 而忘了引用呢?不會發生 javascript error, 反而像是沒有 client side validation 一般,只出現 server side 的 validation。

這種現象好奇怪,在開發時很難想到是js 引用次數的問題。

Share with Facebook