1. ホーム
  2. html

[解決済み] Razor MVC3 による条件付き HTML 属性

2022-11-28 22:25:41

質問

strCSSClassという変数は、しばしば値を持ちますが、時には空になることもあります。

このinput要素のHTMLに空のclass=""を含めたくない、つまりstrCSSClassが空ならclass属性は全くいらないということです。

以下は、条件付きHTML属性の1つの方法です。

<input type="text" id="@strElementID" @(CSSClass.IsEmpty() ? "" : "class=" + strCSSClass) />

これを行うよりエレガントな方法はありますか? 具体的には、要素の他の部分で使用されているのと同じ構文に従うことができるものです: class="@strCSSClass" ?

どのように解決するのですか?

Razor の PM である私から聞いたわけではありませんが、Razor 2 (Web Pages 2 と MVC 4) では、Razor に条件属性が組み込まれます (MVC 4 RC ではテストに成功しています) ので、以下のように言えばいいのです。

<input type="text" id="@strElementID" class="@strCSSClass" />

strCSSClassがNULLの場合、class属性は全くレンダリングされません。

SSSHHHH...内緒です。 :)