我有一个子菜单我想只在使用某些控制器并且存在某个模型时显示。我创建了一个局部并试图在_Layout.cshtml中渲染它,但我得到一个错误,说明传递的模型项是类型...但是这个字典需要类型的项...
我可以将每个视图中的菜单放入控制器中,并传递正确的模型类型,但这似乎不那么灵活。
目前我正在检查_submenu部分
中我的模型是否为空@if(Model != null)
然而,这会让任何类型的模型通过,然后当它是错误的类型时它会出错。
我认为最好的方法是指定我的@ Html.Partial仅在使用某些控制器时运行。或者有没有办法验证模型类型,以便在传递给视图的模型不正确时代码不会运行?
答案 0 :(得分:1)
听起来你需要你的模型是动态的(Check this website以获得更多信息),然后在你的视图中你可以检查模型的类型并采取相应的行动:
@model dynamic
@{
ViewBag.Title = "IndexNotStonglyTyped";
}
<h2>Index Not Stongly Typed</h2>
<p>
@if(Model is MyType) {
<span>got myType!</span>
}
</p>
注:原始示例取自上述网站。