我在2008年MVC2/VS以下情形:MVC形式託管2提交按鈕使用jQuery後
2個提交按鈕,一個文本框和一個下拉框的用戶的形式。用戶輸入全部或部分買家姓名,然後按'查找'提交按鈕。 'find'按鈕觸發一個jquery帖子,根據輸入的文本刷新下拉列表框的內容。下拉列表框包含在另一個.aspx頁面的div中。這是jquery post每次提交'find'按鈕時更新一個div。
爲防止'找到'按鈕重新加載頁面我已經使用preventDefault。到現在爲止還挺好。現在,當我嘗試使用「添加映射」提交按鈕發佈表單時,由於預設默認設置,所以無法發佈。如果我切換此設置,我可以觸發get,但不是帖子。在任何情況下,它都會觸發一個默認(索引)視圖重載,而不是它打算用於的AddMapping控制器(後)操作。
在形式I具有以下按鈕:
<input type="submit" name="Find" value="Find" onclick="return confirmFind()">
<input type="submit" name="AddMapping" value="AddMapping">
jQuery的是,像這樣:
<script language="javascript" type="text/javascript">
// refresh the div(dropdownbox)
function Refresh() {
var dataPost = { name: $("#Buyer").val() };
$.ajax({
type: "POST",
url: "/MTZ/Mapping/RefreshDropDown",
data: dataPost,
success: function(msg) {
$("#ddlRefresh").empty();
$("#ddlRefresh").append(msg);
},
error: function(msg) {
alert("function failed: " + msg);
debugger;
}
});
}
function confirmFind() {
alert("find");
$("form").submit(function(e) {
{ Refresh(); }
e.preventDefault(); // prevent the reload from occurring
});
}
的AddMapping提交旨在用於該控制器/動作:
[AcceptVerbs(HttpVerbs.Post)]
[HttpPost]
[AcceptParameter(Name = "AddMapping", Value = "AddMapping")]
public ActionResult Index(MappingModel modelpassed)
我希望能夠做到的是找到一種發佈'AddMapping'提交按鈕的方法,同時讓'find'按鈕繼續只觸發javascript/jquery函數中包含的操作,即不重新加載視圖。
這是可能的還是我需要在這裏嘗試一種不同的方法?
感謝您的回答/建議。現在不需要了,因爲需求發生了較晚的變化,但AjaxOptions的這個例子看起來非常有前途,可供將來使用。 – baffled68