在MVC视图中添加内联条件语句

时间:2012-10-13 12:28:37

标签: asp.net-mvc razor

我正在尝试动态地将类添加到MVC中的div 查看;在这种情况下error。我发现自己创建了一个 Razor If-Else块,这意味着我的视图有很多重复的代码。我尝试了一些不同的Razor场景,但找不到合理的方法来有条件地添加新类。任何人都可以建议一种避免重复代码并在View中保持View决策的方法。

@if (ViewData.ModelState["Title"] != null && ViewData.ModelState["Title"].Errors.Any())
{
    <div class="select error">
        @Html.DropDownListWithTooltipFor(m => m.Title, Model.Titles, new { required = string.Empty, @class = "sel" })
    </div>
}
else
{
    <div class="select">
        @Html.DropDownListWithTooltipFor(m => m.Title, Model.Titles, new { required = string.Empty, @class = "sel" })
    </div>
}

1 个答案:

答案 0 :(得分:1)

试试这个:

 <div @(condition ? "class=select error" : "class = select">
 </div>

Razor会为你添加引号(class =“select error”)。这应该适用于MVC3。 另外,请看一下:Conditional HTML Attributes using Razor MVC3MVC3 - Conditionally add id element with Razor(实际上非​​常重复)

请注意Erik Porter的答案:如果你能用MVC4做,那么就有更优雅的方式:

<div class="@yourClass" />