Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在MVC3中,Request.IsAjaxRequest永远不会返回true_Jquery_Asp.net_Ajax_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Jquery 在MVC3中,Request.IsAjaxRequest永远不会返回true

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",

我正在使用Asp.NETMVC3,并尝试向服务器发送一篇简单的Ajax文章,该文章将在搜索过程中返回部分视图并更新我的项目列表

    @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*"));