Jquery 在MVC3中,Request.IsAjaxRequest永远不会返回true
我正在使用Asp.NETMVC3,并尝试向服务器发送一篇简单的Ajax文章,该文章将在搜索过程中返回部分视图并更新我的项目列表Jquery 在MVC3中,Request.IsAjaxRequest永远不会返回true,jquery,asp.net,ajax,asp.net-mvc,asp.net-mvc-3,Jquery,Asp.net,Ajax,Asp.net Mvc,Asp.net Mvc 3,我正在使用Asp.NETMVC3,并尝试向服务器发送一篇简单的Ajax文章,该文章将在搜索过程中返回部分视图并更新我的项目列表 @using (Ajax.BeginForm("PartialUpdate", "Listing" , new AjaxOptions { UpdateTargetId = "ListPartialDiv", HttpMethod = "GET",
@using (Ajax.BeginForm("PartialUpdate", "Listing"
, new AjaxOptions {
UpdateTargetId = "ListPartialDiv",
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
}))
{
<!-- Search Boxes and buttons here -->
}
<div id = "ListPartialDiv">
@{
Html.RenderPartial("_ListPartial", Model);
}
</div>
但是Request.IsAjaxRequest()无论如何都会返回false。
我还根据使用了fiddler和firebug,但没有看到X-Requested-With标题,但我真的不知道这意味着什么,也不知道如何更改它。我能想到的唯一一件事是,我看到的其他每个示例都使用较旧版本的jquery。这跟这事有关系吗?谢谢你的帮助 您在jQuery之前包含了unobtrusive AJAX脚本,因此您的脚本都不起作用。确保jQuery.unobtrusive.AJAX.js/jQuery.unobtrusive.AJAX.min.js脚本文件在其他jQuery脚本文件之后被引用,还要确保每页引用文件的次数不超过一次,并且应该对文件进行排序
var controllerContext=MockRepository.GenerateMock();
var controllerContext = MockRepository.GenerateMock<ControllerContext>();
controllerContext.Expect(c => c.HttpContext.Request["X-Requested-With"]).Return("XMLHttpRequest");
controller.ControllerContext = controllerContext;
controllerContext.Expect(c=>c.HttpContext.Request[“X-Request-With”]).Return(“XMLHttpRequest”);
controller.ControllerContext=ControllerContext;
您需要像这样在jquery脚本之后添加不引人注目的脚本
bundles.Add(new ScriptBundle("~/bundles/searchDemo").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
我偶然发现了类似的情况,IsAjaxRequest()不起作用。 我确保包括Microsoft unobtrusive软件包。还是没用。
刚从package manager升级到最新版本的unobtrusive library,它成功了 你有没有注意到浏览器实际上并没有发布AJAX帖子?是的,我正要键入相同的答案
var controllerContext = MockRepository.GenerateMock<ControllerContext>();
controllerContext.Expect(c => c.HttpContext.Request["X-Requested-With"]).Return("XMLHttpRequest");
controller.ControllerContext = controllerContext;
bundles.Add(new ScriptBundle("~/bundles/searchDemo").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));