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