Я использую Asp.net MVC3 и пытаюсь сделать простой пост Ajax на сервер, который возвращает частичное представление и обновляет список элементов во время поиска.Request.IsAjaxRequest никогда не возвращает true в MVC3
@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 независимо от того, что. Я также использовал fiddler и firebug в соответствии с This Question и не вижу заголовок X-Requested-With, но я не могу понять, что это значит или как его изменить. Единственное, о чем я могу думать, это то, что каждый другой пример, который я вижу, использует более старую версию jquery. Это связано с этим? Спасибо за любую помощь.
Вы заметили, что браузер фактически не выполняет AJAX POST? – SLaks