一直找不到原因,後來終於透過Forum詢問,找到原因。基本上不是ASP.NET MVC 3的問題。一來是自己不用功,沒時間去看ASP.NET MVC 3 Release Notes,二來是自己想法太單純,想說ASP.NET MVC 3應該會相容ASP.NET MVC 2吧,所以只是單純安裝MVC 3然後使用。
問題重現
在ASP.NET MVC 3專案中,做如「AjaxHelper Class」最下面的Lab,你會發現Ajax不會運作。但一樣的程式碼在ASP.NET MVC 2很正常。
ASP.NET MVC 2需引用MicrosoftAjax.js及MicsoftMvcAjax.js兩支Javascript。但ASP.NET MVC 3預設使用「Unobtrusive JavaScript」,我們可以參考根目錄下web.config
<appSettings> <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings>
所以在ASP.NET MVC 3我們必須引用另一支Javascript「jquery.unobtrusive-ajax.js」,這一支Javascript必須配合jQuery使用,所以也是引用兩支Javascript。
<script src="<%: Url.Content("~/Scripts/jquery-1.4.4.min.js") %>" type="text/javascript"> </script> <script src="<%: Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js") %>" type="text/javascript"> </script>
引用之後,ASP.NET MVC 3的AjaxHelper就能正常運作了。看來我是要花點時間把ASP.NET MVC 3 Release Notes好好的K一K。@_@
Reference:
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。