C# 为什么不';MVC中部分视图中显示的t模型错误?
我正在开发MVC-4应用程序。我在两个不同的控制器中有两个动作,如: 母公司 孩子 我有一个父视图和一个部分子视图。子视图在父视图内呈现(子视图包含一个窗体,用于为父视图创建新的子视图)。当用户添加新的子节点时,我们将子节点数据发送到子节点控制器的创建操作,成功保存后,我们将用户返回到他/她添加子节点的同一父节点。因此,我们将用户重定向到父控制器的详细操作。如果发生任何验证错误,我们也会重定向到父控制器的详细操作,但这次我们将子对象保存在TempData中以保留modelstate错误 我的父详细视图是: 在这里,我首先检查viewbag是否包含子对象(如果是),然后将该子对象传递给_addChildPartialView。以显示模型错误和用户在表单中填写的数据。数据显示成功,但模型错误未显示 谁能告诉我我做错了什么,为什么模型错误现在显示在部分视图中C# 为什么不';MVC中部分视图中显示的t模型错误?,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我正在开发MVC-4应用程序。我在两个不同的控制器中有两个动作,如: 母公司 孩子 我有一个父视图和一个部分子视图。子视图在父视图内呈现(子视图包含一个窗体,用于为父视图创建新的子视图)。当用户添加新的子节点时,我们将子节点数据发送到子节点控制器的创建操作,成功保存后,我们将用户返回到他/她添加子节点的同一父节点。因此,我们将用户重定向到父控制器的详细操作。如果发生任何验证错误,我们也会重定向到父控制器的详细操作,但这次我们将子对象保存在TempData中以保留modelstate错误 我的父详
TempData["Child"] = child;
您没有存储完整的模型状态(即验证错误信息)。您只存储您的
子对象的POST值
阅读Kazi Manzur Rashid的博客文章。
这会很容易解决你的问题
Public ActionResult Create(Child child)
{
if(ModelState.IsValid)
{
//code save to db
}
TempData["Child"] = child;
return RedirectToAction("Detail", "Parent", new { id = child.ParentId });
}
.....
......
@if (ViewBag.Child == null)
{
Html.RenderPartial("_AddChildPartial", new ViewDataDictionary { { "parentId", Model.Id } });
}
else
{
Html.RenderPartial("_AddChildPartial", ViewBag.Child as xxxx.Models.Child);
}
TempData["Child"] = child;