我有两个 View 模型:
public class ParentViewModel
{
public Id { get; set; }
.....
public ChildViewModel Child{ get; set; }
}
public class ChildViewModel
{
public ChildId { get; set; }
.....
}
Controller :
public ActionResult Index()
{
.... <some code>
return View("NewIndex", ParentViewModel);
}
[HttpPost]
public ActionResult PartialAction(ChildViewModel childView)
{
return RedirectToAction("Index");
}
和意见:
指数
@model ParentViewModel
....
@Html.Partial("_Partial", Model.Child)
和_部分
@model ChildViewModel
... do some stuff with child model
当我尝试打开索引页面时出现错误:
传递到字典中的模型项的类型为“ParentViewModel”,但该字典需要一个“ChildViewModel”类型的模型项。
为什么它试图传递 ParentViewModel 而不是 ChildViewModel。我做错了什么?
最佳答案
我和 OP 有同样的问题。从其中一条评论中,我意识到第二个参数不应该为空,即来自
@model ParentViewModel
@Html.Partial("_Partial", Model.Child)
如果 Model.Child 为空,则 型号 被传递而不是 Model.Child .如果出现第二个参数为空的情况,那么您必须首先检查代码,并可能将初始化的 Child 作为第二个参数传递。像这样的东西
@Html.Partial("_Partial", new Child())
关于asp.net-mvc - 如何将模型传递给局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172595/