我是 ASP.NET MVC 新手;我遇到的问题是从 jqueryUI 对话框表单获取数据并将其传递到 Controller ,以便我可以将表单输入保存到数据库。
由于某种原因,我的 Controller 中用于处理此问题的方法没有被调用,尽管事实上它似乎在 jquery 代码中被正确引用。这是我在 View 中看到的内容(显然我省略了大部分代码,只是将相关部分放在这里以提高可读性):
<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;
});
这是我在 Controller 中使用的方法;调试时,在我测试对话框表单并单击“确定”按钮后,此方法永远不会被命中:
[HttpPost]
public JsonResult SaveNote(string NoteText)
{
//code to save this note to database - not relevant to question
return Json(new { success = true });
}
谢谢。
最佳答案
在我看来,您的 @Url.Action
是错误的。您是否尝试过@Url.Action("SaveNote", "Note")
?
为了使这个问题成为一个完整的答案,问题是“Controller”一词不应出现在 Url.Action 调用中。以下每一项都可以:
@Url.Action("SaveNote", "Note")
...或
@Url.Action("Note/SaveNote")
关于jquery - 使用 ASP.NET MVC3 将表单数据从 jqueryUI 对话框传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957249/