Я пытаюсь добавить пользовательское сообщение об ошибке в представление. Этот вид является частичным рендером с вкладками. Мне пришлось вызвать метод для обработки формы, а затем использовать TempData для хранения ошибки и перенаправить на оригинальный метод, который загружает проверку формы для tempData и добавление ошибки, если она присутствует.
Я попытался установитьПроверка на истину и ложь не сработала. Я также пытался использовать ViewBag, но он тоже не отображается.
@{ Html.RenderPartial("~/Views/Partial/TabView.cshtml", "ID title"); }
<div class="">
<div class="section-title">
Title
</div>
<div>
@Html.ValidationSummary()
</div>
<div class="row-fluid">
<div class="row-fluid">
<div class="row-fluid">
....Fields
</div>
<div class="row-fluid">
...More Fields
</div>
<br /><br /><br />
<div class="row-fluid">
<div class="span2">
<span class="">Id</span>
<div>
@Html.TextBoxFor(m => m.Id, new { @class = "input-block-level" })
@Html.ValidationMessageFor(m => m.Id, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="row-fluid">
<div class="span2">
<span class="participation-search-form-title">Password</span>
<div>
@Html.TextBoxFor(m => m.Password, new { @class = "input-block-level" })
@Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="row-fluid margin-top">
<div class="pull-right">
...Submit buttons
</div>
</div>
</div>
</div>
</div>
TO process form
[HttpPost]
public ActionResult CreateUserAccountApprovalForm(int Id)
{
//Create User
if (approval)
{
var result = CreateUser();
if (!result)
{
ViewModel vm = new ViewModel();
vm.Id = Id;
TempData["CustomError"] = "error";
return RedirectToAction("Compare", new { id = Id });
}
}
return RedirectToAction("Index");
}
TO load form
public ActionResult Compare(int id)
{
//Check if error present from Create Account
if (TempData["CustomError"] != null)
{
//ModelState.AddModelError(string.Empty, TempData["CustomError"].ToString());
ModelState.AddModelError("", "This email is already taken.");
ViewBag.message = "show this please...";
}
var vm = new ViewModel();
return View(vm);
}
Я ожидал появления ошибки в некотором роде в верхней части экрана. Пожалуйста, все, что может помочь, я потерял и пытался заставить это работать дольше, чем ожидалось.