我是ASP.NET MVC的新手;我遇到麻煩的是從jqueryUI對話框表單獲取數據並將其傳遞給控制器,以便我可以將表單輸入保存到數據庫中。將表單數據從jqueryUI對話框傳遞給ASP.NET MVC3控制器
在我的控制器中處理此方法不會因爲某種原因而被調用,儘管它似乎在jQuery代碼中正確引用。下面是我的觀點(我明明省略大部分的代碼,只是把相關部分這裏閱讀):
<a href="#" id="dialog_link">Open Dialog Box</a>
<div id="dialog" title="MakeSomeSampleNote">
<form id="testform" method="post">
<input id="tbx_casenote" name="tbx_casenote" type="text" style="height:50px; width:200px;" />
</form>
</div>
$("#dialog").dialog({
autoOpen: false,
resizable: true,
height: 210,
width: 510,
modal: true,
buttons: {
"Ok": function() {
var noteval = $("#tbx-casenote").val();
$.ajax({
type: "POST",
url: "@Url.Action("NoteController/SaveNote")",
data: { content: tbx_casenote_val },
cache: false,
dataType: "json",
success: function (data) {
$("#dialog").dialog("close");
}
});
},
"Cancel": function() {
$(this).dialog("close");
}}
});
$('dialog_link').click(function() {
$('#dialog').dialog('open');
return false;
});
這裏是我使用的控制器的方法;在調試時,在我測試對話框窗體並單擊「確定」按鈕後,此方法從未被擊中:
[HttpPost]
public JsonResult SaveNote(string NoteText)
{
//code to save this note to database - not relevant to question
return Json(new { success = true });
}
謝謝。
既然你已經設置'的AutoOpen:假'你在哪裏打開/顯示對話框?此外,您似乎在AJAX調用中使用了一些'tbx_casenote' JavaScript變量,該變量不清楚在哪裏定義。 –
編輯我原來的帖子來回答你的問題。謝謝 – Matt
好的,我對代碼進行了一些更改,並更新了我的帖子以反映這一點。不再遇到'堆棧空間不足'的錯誤。現在看來沒有什麼事情了,控制器中的SaveNote方法永遠不會從jquery調用,這就是它現在的位置。 – Matt