【发布时间】:2015-03-17 23:16:20
【问题描述】:
我正在使用 MVC 5/jquery 1.10.2 和 jquery ui 1.11.3
对于这个例子,我有一个父对象和一个子对象。在为父对象创建视图上,我有一个自动完成文本框,用户可以从中选择其中一个子对象。如果孩子还不存在,用户可以点击一个链接打开一个包含部分视图的 jQuery 对话框。
我用来执行此操作的代码如下:
$(function () {
var dialog = $("#dialog-form").dialog({
autoOpen: false,
width: 500,
height: 450,
dialogClass: "dialogStyle",
draggable: true,
resizable: false,
modal: true,
hide: { effect: "fade", duration: 1000 },
title: "New Donor",
open: function () {
$(this).closest(".ui-dialog")
.find(".ui-dialog-titlebar-close")
//.removeclass("ui-dialog-titlebar-close")
.html("<span class='ui-button-icon-primary ui-icon ui-icon-closethick'></span><span class='ui-button-text'>close</span>");
}
});
$("#new-donor").click(function () {
$("#dialog-form").load("@Url.Action("MinCreate", "Donors")", function () {
dialog.dialog("open")
});
});
});
现在,我有两个问题:
- 当我成功提交部分视图表单时,我想关闭对话框并将新创建的子详细信息返回到现有父表单中。我不知道该怎么做。
- 如果在服务器端的部分视图上验证失败,我显然想将失败返回到现有对话框。目前它会重定向到局部视图。
我的部分视图代码在这里:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label dia-col-md-2" })
<div class="dia-col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
// other data entry fields here...
<div class="form-group">
<div class="dia-col-md-offset-2 dia-col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
我的控制器代码在这里:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> MinCreate([Bind(Include = "Id,Name,Email,AddressLine1,City,State,PostalCode,PrimaryPhone")] Donor donor)
{
try
{
if (ModelState.IsValid)
{
db.Donors.Add(donor);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
}
catch (Exception ex)
{
return PartialView("_Create");
}
return PartialView("_Create", donor);
}
【问题讨论】:
标签: jquery asp.net-mvc asp.net-mvc-5 partial-views jquery-dialog