【发布时间】:2011-08-02 02:54:39
【问题描述】:
背景:
我有一个弹出窗口,可以让我创建一个公司,这个弹出窗口有一个名为公司名称的文本字段,这是一个必填字段(使用支持视图模型上的 [Required] 数据注释)。
<div class="popup-editor">
<h4 class="popup-title">
Add new Company</h4>
@using (Ajax.BeginForm("Create", "Company", new AjaxOptions { UpdateTargetId = "popup-editor", OnSuccess = "$.validator.unobtrusive.parse('form');" },))
{
@Html.ValidationSummary(true);
<table>
<tr>
<td class="label">
Company Name
</td>
<td class="editor-field">
@Html.EditorFor(x => x.Name)
@Html.ValidationMessageFor(x => x.Name)
</td>
</tr>
</table>
<div class="popup-buttons">
<a href="#" onclick="return togglePopupEditor();">Cancel</a>
<input type="submit" value="Add Company" />
</div>
}
</div>
现在验证工作正常,当名称字段为空时,ajax 让我在弹出窗口中显示错误消息。
问题:
当没有验证错误时,我需要能够重定向到一个新页面(公司详细信息页面),而是将该页面插入到弹出内容所在的 div 中。例如:
public ActionResult Create(CreateCompanyModel model)
{
if(!ModelState.IsValid)
{
return PartialView("_AddCompanyEditor");
}
Company c = CompanyService.Create(model.Name);
return RedirectToAction("Details", new { companyId = c.Id });
}
有什么办法吗?强制对整个页面进行完全重定向,还是切换到标准 HTML 表单?
【问题讨论】:
标签: c# asp.net-mvc-3 jquery jquery-validate