2016-07-06 5 views
1

私は次の例のように、三項演算子を使って、与えられた条件でカミソリの要素のCSSのsyleをフォーマットする方法を知っている:Razorでスタイルを決定するためにelseブロックを使用する方法?

<div style="@(Model.Condition ? "float:left" : "float:right")"> 

しかし、私は、より複雑な決定ブロックを持って、私は2を入れ子にする必要があります三項演算子ですが、これは実際には良いことではありません。私はこの方法で試してみました:

<div style="@{ 
      if (Model.Condition) 
      { 
       "float:left" 
      } 
      else 
      { 
       "float:right" 
      } 
}"> 

をし、それがエラー表示されます。if-elseブロック内の文字列の後に

; expected

を、と私は;を追加する場合、それはまだ、次の

のようなエラーを与えています

Only assignment, call, increment, decrement, and new object expressions can be used as a statement

if-elseブロックを使用してこれを行う方法はありますか?

答えて

2

あなたは常にビューの開始時にローカル変数を宣言することができます。

@{ 
    var yourStyle = ""; 
    if(Model.Condition) 
    { 
     yourStyle = "float:left"; 
    } 
    else 
    { 
     yourStyle = "float:right"; 
     //any other conditions and logic 
    } 
} 

、その後、ちょうどあなたのdivにそれを使用する:

<div style="@yourStyle"> 
+0

をなぜ私はこの考えられませんでしたか?ありがとうございました! – meJustAndrew

関連する問題