我正在使用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。那有什么关系吗?谢谢你的帮助。
您在jQuery之前包含了不引人注目的AJAX脚本,因此您的所有脚本都无法正常工作。