我正在使用 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调用,所以它渲染了一个新页面。我已经包含了正确的 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">
我的控制器代码非常简单:
if (Request.IsAjaxRequest())
return PartialView("_ListPartial", list);
return View("Index", list);
但无论如何,Request.IsAjaxRequest() 总是返回 false。
我还根据以下内容使用了 fiddler 和 firebug这个问题并且没有看到 X-Requested-With 标头,但我无法真正弄清楚这意味着什么或如何更改它。我唯一能想到的是我看到的所有其他示例都使用旧版本的 jquery。这有什么关系吗?谢谢你的帮助。