我正在使用MVC-4應用程序。我有2個作用在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 });
}
我有一個父視圖和部分子視圖。子視圖在父視圖內呈現(子視圖包含用於爲父項創建新子項的表單)。當用戶添加新的孩子時,我們將孩子數據發送給孩子控制器的創建動作,並在成功保存後,我們將用戶返回給他/她添加孩子的同一父母。出於這個原因,我們將用戶重定向到父控制器的詳細操作。如果發生任何驗證錯誤,也會重定向到父控制器的詳細操作,但是這次我們將子對象保存在TempData中以保持模型狀態錯誤。
我的父母細節的看法是:
.....
......
@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視圖中?