【转】ASP.NET MVC AJAX.BeginForm异步提交和刷新无效

之前新建一个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

Microsoft.jQuery.Unobtrusive.Ajax插件官网截图

使用NuGet安装插件非常简单,第一种方式是使用NuGet程序包管理控制台安装,直接输入下面指令即可:

PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax

默认是安装最新版本的插件,如果要指定安装的版本,要在后面添加版本号,如下图:

安装指定版本的Ajax插件

第二种方法是使用NuGet程序包管理工具,右键点击要安装MVC AJAX插件的项目进入管理界面,搜索Microsoft.jQuery.Unobtrusive.Ajax,直接点击安装即可,如下图所示:

安装jQuery.Unobtrusive.Ajax步骤一

安装jQuery.Unobtrusive.Ajax步骤二

转载于:http://shiyousan.com/post/635755969819831275

posted @ 2016-09-17 17:38  Relict  阅读(1797)  评论(0编辑  收藏  举报