我目前正在使用jQuery和MVC3进行尝试,并想知道如何提交一个已经动态加载到jQueryUI对话框中的表单?
我的代码如下...
Javascript/jQuery
$(document).ready(function () {
$('.trigger').live('click', function (event) {
var id = $(this).attr('rel');
var dialogBox = $("<div>");
$(dialogBox).dialog({
autoOpen: false,
resizable: false,
title: 'Edit',
modal: true,
show: "blind",
hide: "blind",
open: function (event, ui) {
$(this).load("PartialEdit/" + id.toString());
}
}
});
$(dialogBox).dialog('open');
}) });
cshtml
<h2>Detail</h2><a href="#" class="trigger" rel="1">Open</a>
控制器
public ActionResult PartialEdit(int id)
{
return PartialView(new EditViewModel() { Name = id.ToString() });
}
[HttpPost]
public ActionResult PartialEdit(int id, FormCollection collection)
{
// What to put here???
}
局部视图
....@using (Html.BeginForm()){....Html.EditorFor(model => model.Name).....}....
正如您所看到的,jQuery中的load()调用了名为PartialEdit的PartialView。
表单已成功加载,但我卡在了如何实际提交表单的问题上?
问题
如何让UI提交表单并关闭对话框? [HttpPost]PartialEdit应返回什么?
目前,我将提交按钮放在了局部视图中。单击后,表单被提交,浏览器执行[HttpPost]PartialEdit返回的操作(当前结果是显示一个空白页面)。
然而,在提交后,我希望触发客户端事件(可能是完全页面刷新或部分页面刷新,具体取决于使用情况)。我不确定从哪里开始?
此外,我应该在PartialView中放置提交按钮,还是应该使用jQuery-UI对话框上的按钮?
欢迎提出任何建议/指针。
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
} - ETFairfax$('form',html)
选择器是否返回表单元素?submit
回调是否被执行? - Darin Dimitrov$('#myForm').submit(...);
。 - Darin Dimitrov