Javascript Ajax.BeginForm()不异步工作
我正在尝试学习ASP.Net MVC,但在让Ajax.BeginForm异步更新部分视图时遇到了问题。 这是操作视图中的代码:Javascript Ajax.BeginForm()不异步工作,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我正在尝试学习ASP.Net MVC,但在让Ajax.BeginForm异步更新部分视图时遇到了问题。 这是操作视图中的代码: @using (Ajax.BeginForm( new AjaxOptions { HttpMethod = "get", InsertionMode = InsertionMode.Replace, UpdateTargetI
@using (Ajax.BeginForm(
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "restaurantList"
}))
{
<input type="search" name="searchTerm" />
<input type="submit" value="Search By Name." />
}
@Html.Partial("_Restaurants", Model)
我在BundleConfig中包含了一堆jquery脚本文件
bundles.Add(new ScriptBundle("~/bundles/otf").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery-migrate-{version}.js",));
我在项目中所有视图都使用的共享布局视图中,在主体部分结束之前调用render函数
@Scripts.Render("~/bundles/otf")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
@Scripts.Render(“~/bundles/otf”)
@Scripts.Render(“~/bundles/bootstrap”)
@RenderSection(“脚本”,必需:false)
我已经试着解决这个问题两天了,但我一事无成。任何帮助都将不胜感激 确保
jquery.unobtrusive ajax.js
脚本存在于Scripts
文件夹中,并以
标记获取
如果没有,请确保您已在项目中安装NuGet,该项目会将此脚本添加到应用程序的Scripts
文件夹中
我注意到,使用Visual Studio 2015创建新的ASP.NET MVC应用程序时,此脚本不是现成的,我必须安装此NuGet才能使用。我不知道在最新的MVC版本中删除此脚本的原因-可能它已被弃用,现在有了一种替代方法来实现这一点,但我已经很久没有进行MVC开发了,我不太确定现在推荐的方法是什么。禁用BundleTable绑定。EnableOptimizations=false和如果所有需要的脚本都已加载,请在浏览器调试窗口中进行检查。我也尝试过,但没有成功。在Chrome的开发者工具的元素选项卡中,这一行出现了:这意味着脚本已经加载,对吗?是的,如果你看到这个脚本出现了,那么应该加载它。您还可以检查
网络
选项卡,以确保向其发出请求,并且服务器实际返回其内容:200状态代码。还要确保jquery脚本也包含在它之前。顺便说一句,我刚刚在VS 2015中创建了一个新的MVC应用程序,安装了我回答中提到的NuGet,并且能够使用异步AJAX表单。我得到了200状态代码,jquery-1.10.2是第一个加载的脚本。我也在使用VS2015,并且已经安装了Microsoft.jQuery.Unobtrusive.Ajax.3.2.3。还是不行,等等,现在真的行了!不知道我改变了什么,但谢谢你的帮助!
@Scripts.Render("~/bundles/otf")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>