我已閱讀了很多關於此主題的不同文章,我將繼續這樣做並嘗試各種各樣的內容。儘管如此,由於我在MVC方面相對缺乏經驗等原因,信息差別很大,所以我覺得我會繞圈一圈。MVC3提交Ajax表格
這是情況。我在包含jqGrid中的記錄的MVC3應用程序中顯示(Razor)視圖。雙擊記錄將在jQuery UI對話框中打開該記錄。原始視圖只包含代表對話框的那個視圖。被調用的動作返回一個局部視圖,成爲對話div的內容。
function editItem(gridID, url) {
var rowID = getSelectedRowID(gridID);
if (rowID == null) {
alert('No row selected.\r\nPlease select a row and try again.');
return;
}
else {
var grid = getGrid(gridID);
$("#editDialogue").load(url + "/" + grid.SelectedRowID, function (html) {
$("#editDialogue")[0].value = html;
$("#editTabs").tabs();
$("#editDialogue").dialog("open");
});
}
}
這部分工作,雖然我覺得它可以忍受一點點清理。我真正的問題是稍後提交包含在該對話框中的表單。它應該回發到一個名字相同的動作,它就是這樣。該行爲應該驗證並保存或返回具有驗證錯誤的相同部分視圖。此刻,我試圖僅僅返回視圖而不做任何其他事情。視圖可以正常返回,但整個頁面被替換,而不僅僅是對話框的內容。
我已經嘗試了各種各樣的東西,包括使用Ajax.BeginForm和指定對話框div的id作爲AjaxOptions的UpdateTargetId。到目前爲止沒有任何工作。請注意,提交的表單在div內,因此它也會被替換。不知道這是否是問題的一部分。
我現在正在收拾一天,所以我想我會發布,看看在早上再次攻擊問題之前發生了什麼。
我錯過了什麼嗎?這聽起來像你問的問題實際上沒有發佈?那是對的嗎?如果是這樣,我們應該如何幫助? – jmort253 2011-01-11 08:21:17