我正在使用Asp.net MVC3并尝试向服务器做一个简单的Ajax帖子,该服务器返回一个局部视图并在搜索过程中更新我的项目列表。Request.IsAjaxRequest在MVC3中永不返回true
@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脚本,并添加了密钥,根据This Question
<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。 我也使用了根据This Question的提琴手和萤火虫,并没有看到X-Requested-With标题,但我无法弄清楚这意味着什么或如何改变它。我能想到的唯一的事情是,我看到的每个其他示例都使用jQuery的旧版本。这与它有什么关系?谢谢你的帮助。
您是否注意到浏览器实际上没有在执行AJAX POST? – SLaks 2012-03-07 18:38:57