我是ASP.NET MVC的新手;我遇到的问题是从jqueryUI对话框表单中获取数据并将其传递给控制器,以便我可以将表单输入保存到数据库中。
我的控制器中用于处理此方法的方法由于某种原因不会被调用,尽管它似乎在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 });
}
感谢。
答案 0 :(得分:2)
我认为你的@Url.Action
错了。你试过@Url.Action("SaveNote", "Note")
吗?
为了使这个问题成为一个完整的答案,问题是“控制器”一词不应出现在Url.Action调用中。以下各项都有效:
@Url.Action("SaveNote", "Note")
...或
@Url.Action("Note/SaveNote")
答案 1 :(得分:1)
您可以将网址设为“controlname / methodname”