1

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

@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>
}
4

1 回答 1

2

试试这个:

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

Razor 将为您添加引号(class = "select error")。这应该在 MVC3 中工作。另外,看看:Conditional HTML Attributes using Razor MVC3 and MVC3 - Conditionally add id element with Razor(实际上几乎是重复的)

请注意Erik Porter的回答:如果您可以使用 MVC4 做到这一点,那么还有一种更优雅的方式:

<div class="@yourClass" />
于 2012-10-13T12:34:52.463 回答