1

MVC Viewの div にクラスを動的に追加しようとしています。この場合errorRazor 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で機能するはずです。また、以下もご覧ください。Razor MVC3 およびMVC3を使用した条件付きHTML属性-Razorを使用してid要素を条件付きで追加します(実際にはほとんど重複しています)

Erik Porterの答えに注意してください。MVC4でそれを実行できる場合は、よりエレガントな方法があります。

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