【发布时间】:2014-02-05 23:57:22
【问题描述】:
我有两个视图模型:
public class ParentViewModel
{
public Id { get; set; }
.....
public ChildViewModel Child{ get; set; }
}
public class ChildViewModel
{
public ChildId { get; set; }
.....
}
控制器:
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。我做错了什么?
【问题讨论】:
-
调用时
Model.Child为空?因为Html.Partial的第二个参数不应该是null...所以让你知道你的Child属性有一些价值! -
实际上我的 Partial 视图仅用于 AddObject 功能,因此 ChildViewModel 只需要从 PartialView 向控制器发送数据。所以不需要将 Child 中的数据从 Index 传递到 Partial 视图
-
您仍然需要将 ChildViewModel 传递给
@Html.Partial调用。但是它可以是一个空对象:@Html.Partial("_Partial", new ChildViewModel ())...
标签: asp.net-mvc partial-views asp.net-mvc-viewmodel