小编典典

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

ajax

我正在使用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>

Ajax成功调用服务器,服务器通过发送部分视图进行响应。但是部分视图始终在新页面中呈现。我发现这是因为它不知道即将到来的ajax调用,因此它呈现了一个新页面。

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

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

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

      return View("Index", list);

但是无论如何,Request.IsAjaxRequest()始终返回false。使用了提琴手和萤火虫,并且看不到X-Requested-With标头,但我无法真正弄清楚这意味着什么或如何对其进行更改。我唯一能想到的是,我看到的所有其他示例都使用旧版本的jquery。那有什么关系吗?谢谢你的帮助。


阅读 257

收藏
2020-07-26

共1个答案

小编典典

您在jQuery之前包含了不引人注目的AJAX脚本,因此您的所有脚本都无法正常工作。

2020-07-26