Я работаю над приложением MVC-4. У меня есть два действия в 2 разного контроллере, как:Почему ошибки модели не отображаются в частичном представлении в MVC?
Родителя
Public ActionResult Detail(int id)
{
var p = parent.GetById(id);
ViewBag.Child = TempData["Child"];
return View(p);
}
Детского
Public ActionResult Create(Child child)
{
if(ModelState.IsValid)
{
//code save to db
}
TempData["Child"] = child;
return RedirectToAction("Detail", "Parent", new { id = child.ParentId });
}
У меня есть родительский вид и частичный вид на ребенок. Вид Child отображается внутри родительского представления (дочерний вид содержит форму для создания нового дочернего элемента для родителя). Когда пользователь добавляет нового ребенка, мы отправляем дочерние данные в действие для создания дочернего контроллера, и после успешного сохранения мы возвращаем пользователя к тому же самому родителю, откуда он добавил ребенка. По этой причине мы перенаправляем пользователя на подробное действие родительского контроллера. И если возникает какая-либо ошибка проверки, а также перенаправляется на подробное действие родительского контроллера, но на этот раз мы сохраняем дочерний объект внутри TempData, чтобы сохранить ошибку modelstate.
Мой взгляд родительская деталь:
.....
......
@if (ViewBag.Child == null)
{
Html.RenderPartial("_AddChildPartial", new ViewDataDictionary { { "parentId", Model.Id } });
}
else
{
Html.RenderPartial("_AddChildPartial", ViewBag.Child as xxxx.Models.Child);
}
Здесь я первый проверить, содержит ли viewbag дочерний объект, если да, чем мы проходим, что ребенок obejct к _AddChildPartial view.To показать ошибку модели и данные, пользователь заполняется в форме. Данные отображаются успешно, но ошибка модели не отображается.
Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно здесь, почему ошибки модели теперь отображаются в _AddChildPartial View?