1

我有一个页面,我使用的模型可以有不同的类型(取决于动作和控制器)。当我想使用从模型中获取参数的部分时,我的问题就开始了

@Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field1))

但是,如果我没有声明模型类型,我会出现类似Partial can not use dynamic values. 所以我有想法解决它:

@if (Model.GetType() == typeof(ContentPage))
{
    @model ContentPage
    @Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field1))
}
else if (Model.GetType() == typeof(Data.Models.Directory))
{
    @model Directories
    @Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field2))
}

但后来我有这样的错误:ContentPage.field2 no exist

你有什么想法我该如何解决?

任何帮助,将不胜感激。

4

1 回答 1

0

根据条件使用不同的模型强类型化视图或局部视图不是一个好主意。如果您仍想在视图/局部视图中使用不同类型的模型,那么您必须使用ViewData/ViewBag方法。

另一种选择是您可以使用通用视图模型查看此线程

于 2012-06-14T09:16:57.853 回答