gpt4 book ai didi

jquery - Request.IsAjaxRequest() 在 MVC4 中总是返回 false,尝试了 SO 中的所有建议等

转载 作者:行者123 更新时间:2023-12-03 22:36:49 25 4
gpt4 key购买 nike

首先让我解释一下我尝试过的所有可能的解决方案。我现在的脚本文件夹中有 jquery-unobtrusive-ajax.min.js 并将其添加到 bundle 中。我尝试在 View 页面本身以及 _Layout.cshtml 页面上引用它,这就是我目前拥有 bundle 的方式:

//BundleConfig.cs
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.10.2.min.js",
"~/Scripts/modernizr-2.6.2.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js"));

该包在主布局 View 页面中引用,我的所有其他 View 均源自:

//_Layout.cshtml (at bottom of view, right before hitting </body></html>)
@Scripts.Render("~/bundles/jquery")

最后在 web.config 中,我将这些键添加到应用程序设置中:

//Web.config
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

既然已经说过了,这就是我的 Ajax 调用的样子。我正在尝试从独立页面返回一些数据并将其替换为主页中的内容,我认为相当简单:

@Ajax.ActionLink("Edit", "Index", "WeeklyTarget",
new {id = item.WeeklyTargetId},
new AjaxOptions {HttpMethod = "GET", UpdateTargetId = "hoursEdit", InsertionMode = InsertionMode.Replace})

当从索引 View 中单击此操作链接时,将从 Controller 调用此操作:

public ActionResult Index(int? id, IEnumerable<WeeklyTarget> selection )
{
if (Request.IsAjaxRequest())
{
// return the partial view here
}
}

但正如我的标题中所述,Request.IsAjaxRequest() 仍将始终返回 false。是什么赋予了???请帮助...我已经用尽了我能想到的所有想法、调整和解决方法。我什至尝试清除缓存、清理解决方案等。

最佳答案

所以...问题是 jquery-unobtrusive-ajax.min.js 引用了已弃用的 jQuery 方法 .live()。当我调试时,我能够看到这是 chrome 开发者控制台中抛出的错误。仅当您使用 1.9 以后的 jQuery 版本(我使用的是 1.10.2)时才会发生这种情况。它在 1.7 中被弃用,但在 1.9 中被完全删除。

解决方案是添加另一个 jquery 库jquery-migrate-1.2.1.js,可以在此处找到:https://github.com/jquery/jquery-migrate#readme更具体地说(用于开发,而不是生产目的):http://code.jquery.com/jquery-migrate-1.2.1.js 。我保存了这个库并将其包含在我的 BundleConfig.cs 脚本中,其余部分开始按预期工作。我希望这对其他人有帮助。

关于jquery - Request.IsAjaxRequest() 在 MVC4 中总是返回 false,尝试了 SO 中的所有建议等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22175960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com