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

Dan*_*Dan 2 asp.net ajax asp.net-mvc jquery asp.net-mvc-3

我正在使用Asp.net MVC3并尝试向服务器发送一个简单的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>
Run Code Online (Sandbox Code Playgroud)

ajax成功调用服务器,服务器通过发送部分视图进行响应.但是局部视图总是在新页面中呈现.我发现这是因为它不知道它是一个ajax调用,所以它呈现一个新的页面.我已经包含了正确的jquery-ubobtrusive-ajax.min.js脚本,并根据此问题添加了如下关键字

    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"> 
Run Code Online (Sandbox Code Playgroud)

我的控制器代码非常简单:

      if (Request.IsAjaxRequest())
          return PartialView("_ListPartial", list);

      return View("Index", list);
Run Code Online (Sandbox Code Playgroud)

但是Request.IsAjaxRequest()总是返回false,无论如何.我也根据这个问题使用了小提琴手和萤火虫,并没有看到X-Requested-With标题,但我无法弄清楚这意味着什么或如何改变它.我唯一能想到的是,我看到的每个其他示例都使用旧版本的jquery.这与它有什么关系吗?谢谢你的帮助.

SLa*_*aks 7

你在jQuery之前包含了不引人注目的AJAX脚本,所以你的脚本都没有工作.