Справочная информация:
У меня есть всплывающее окно, которое позволяет мне создать компанию, в этом всплывающем окне есть текстовое поле с именем компании, и это обязательное поле (используется [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?