之前新建一個ASP.NET MVC5網站的時候發現AjaxHelper類的ajax操作無效,主要問題出現在使用Ajax.BeginForm方法進行AJAX表單提交,參數和代碼都正確的情況下就是沒有進行異步提交,頁面也沒有異步刷新,其他相關的AJAX操作都變成同步操作。造成此問題的原因主要有兩個:關鍵JS文件沒引用,或者引用順序錯了。
在ASP.NET MVC中如果要使用AjaxHelper類的AJAX異步操作,比如ActionLink,BeginForm,RouteLink等方法,就一定要引入jquery.unobtrusive-ajax.js這個文件,這個文件是基於JQuery,所以順序一定要放在JQuery后面,有部分猿類同胞有遇到這個問題。
此外由於我使用的是ASP.NET MVC5,開發工具是VS2015,默認是沒有引入jquery.unobtrusive-ajax.js,不知道是不是版本問題,網上也有很多人VS沒有自動引入Microsoft.jQuery.Unobtrusive.Ajax。
這個問題確實折騰了我很多時間,后來仔細想想,如果自己能稍微靜心下來也許這個問題根本不用浪費這么多時間,果然寫代碼不能太浮躁!另外這也提醒自己每當有新項目時一定要先配置好相關類庫和腳本。
解決方案:
先看下插件的官方地址:http://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax
使用NuGet安裝插件非常簡單,第一種方式是使用NuGet程序包管理控制台安裝,直接輸入下面指令即可:
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax
默認是安裝最新版本的插件,如果要指定安裝的版本,要在后面添加版本號,如下圖:
第二種方法是使用NuGet程序包管理工具,右鍵點擊要安裝MVC AJAX插件的項目進入管理界面,搜索Microsoft.jQuery.Unobtrusive.Ajax,直接點擊安裝即可,如下圖所示:
轉載於:http://shiyousan.com/post/635755969819831275