私は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によると、fiddlerとfirebugを使用していますが、X-Requested-Withヘッダーは表示されませんが、その意味や変更方法を実際に把握することはできません。私が考えることができるのは、私が見ている他のすべての例で古いバージョンのjqueryを使用していることだけです。それはそれと関係がありますか?助けてくれてありがとう。
ブラウザが実際にAJAX POSTを実行していないことに気がつきましたか? – SLaks