任务很简单。我在 web.config 中有价值,如下所示:
<add key="MenuTypes" value="1,2,3"/>
在 Razor 文件中,我需要根据这些值渲染一些菜单。因此,如果我在配置文件(MenuTypes)中有值 3,我想渲染该项目。如果我没有它,我不想渲染它:
<div>
<ul id="setThemUp" class="vehicles">
<li><a class="bikes" href="#1">Bikes</a></li>
<li><a class="cars" href="#2">Cars</a></li>
@if (ViewBag.MenuTypes(((int)3).ToString()) > -1)
{
<li><a class="Trucks" href="#3">Trucks</a></li>
}
</ul>
我也试过:
<div>
<ul id="setThemUp" class="vehicles">
<li><a class="bikes" href="#1">Bikes</a></li>
<li><a class="cars" href="#2">Cars</a></li>
@if (ViewBag.MenuTypes.Contains("3"))
{
<li><a class="Trucks" href="#3">Trucks</a></li>
}
</ul>
</div>
但在这两种情况下,我都得到:用户代码未处理 RunTimeBinderException 无法对空引用执行运行时绑定。
我让它像这样工作:
<add key="TrucksEnabled" value="true"/>
<div>
<ul id="setThemUp" class="tabs">
<li><a class="bikes" href="#1">Bikes</a></li>
<li><a class="cars" href="#2">Cars</a></li>
@if ((bool)ViewBag.TrucksEnabled)
{
<li><a class="Trucks" href="#3">Trucks</a></li>
}
</ul>
</div>
但我不能以这种方式使用它。我需要它像第一个例子一样工作。我对 Razor/MVC 不是很好。任何帮助表示赞赏。