之前新建一个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。
这个问题确实折腾了我很多时间,后来仔细想想,如果自己能稍微静心下来也许这个问题根本不用浪费这么多时间,果然写代码不能太浮躁!另外这也提醒自己每当有新项目时一定要先配置好相关类库和脚本。
解决方案:
先看下插件的官方地址:
使用NuGet安装插件非常简单,第一种方式是使用NuGet程序包管理控制台安装,直接输入下面指令即可:
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax
默认是安装最新版本的插件,如果要指定安装的版本,要在后面添加版本号,如下图:
第二种方法是使用NuGet程序包管理工具,右键点击要安装MVC AJAX插件的项目进入管理界面,搜索Microsoft.jQuery.Unobtrusive.Ajax,直接点击安装即可,如下图所示:
转载于:http://shiyousan.com/post/635755969819831275