我在ASP.Net MVC5中編寫了一個AJAX函數,並且我遇到了表單AJAX請求只去一次的問題。這是一個搜索頁面。在我選擇過濾器之後,按下搜索,我會得到正確的結果。但是,如果我更改過濾器並再次單擊搜索提交,則不會發生任何事情。Ajax調用只去一次ASP.Net MVC5
var ajaxFormSubmit = function() {
var $form = $(this);
var options = {
url: $form.attr("action"),
type: $form.attr("method"),
data: $form.serialize()
};
$.ajax(options).done(function (data) {
var target = $($form.attr("data-enbw-target"));
target.replaceWith(data);
debugger;
});
return false;
};
$("form[data-enbw-ajax='true']").submit(ajaxFormSubmit);
<form method="get" id="documentForm" action="@Url.Action("Index", "DocumentSearch")" def data-enbw-ajax="true" data-enbw-target="#documentSearchResult">
<button type="submit" id="submitbtn" name="submitbtn" tabindex="100" class="k-button">
<img src="~/Content/search_small_icon.png" />
@WebResources.DocumentSearchButton
</button>
</form>
@Html.Partial("Results", @Model)
public ActionResult Index(DocumentSearchInput model)
{
if (Request.IsAjaxRequest())
{
return PartialView("Results", result);
}
return View(result);
}
我沒有得到任何錯誤。當我得到一個調試器;在JavaScript中。新數據是正確的。你能幫我麼。
您是否在事件的第一行嘗試了一個調試器? – DontVoteMeDown
'#documentSearchResult'元素是'form'的父元素嗎?如果是這樣,你需要使用委託事件處理程序。 –
我想建議你也看看使用'Ajax.BeginForm()'輔助方法,而不必編寫自己的處理程序和東西。在適用的情況下,更容易使用恕我直言。如果它有任何用處,下面是另一個如何使用它的答案:http://stackoverflow.com/a/17096835/6240567 –