我有一个不强类型的视图。但是我在这个视图中有一个强类型的局部视图。
如何将模型传递给此强类型视图?
我试过像
这样的东西 public ActionResult Test()
{
MyData = new Data();
MyData.One = 1;
return View("Test",MyData)
}
在我的TestView中
<% Html.RenderPartial("PartialView",Model); %>
这给了我一个stackoverflow异常。所以我不知道如何传递它。当然,如果可能的话,我不想让测试视图强烈输入,如果我在该视图中有10个强类型的局部视图,我需要像某种包装器那样。
答案 0 :(得分:4)
您应该扩展模型,以便它可以为视图提供所有必需的字段(这称为ViewModel),或者单独使用ViewData提供它们。
public ActionResult Test()
{
MyData = new Data();
MyData.One = 1;
ViewData["someData"]=MyData;
return View();
}
然后:
<% Html.RenderPartial("PartialView",ViewData["someData"]); %>
ViewData是一个很好的输入字典
答案 1 :(得分:0)
将partial所需的对象放入Viewdata,并在视图中使用ist作为partial的输入。
public ActionResult Test()
{
ViewData["DataForPartial"] = new PartialDataObject();
return View("Test")
}
在视图中使用:
<% Html.RenderPartial("PartialView",ViewData["DataForPartial"]); %>
但无论如何:没有理由没有一个强烈的类型视图。