如何使用if else else来决定Razor中的样式?

meJ*_*rew 3 css asp.net-mvc razor

我知道如何仅通过使用三元运算符在给定条件下格式化Razor中元素的css syle,如以下示例所示:

<div style="@(Model.Condition ? "float:left" : "float:right")">
Run Code Online (Sandbox Code Playgroud)

但是我有一个更复杂的决策块,应该嵌套两个三元运算符,这不是一个很好的实践。我已经尝试过这种方式:

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

它显示错误:

; 预期

if-else块中的字符串之后,如果我添加;它,仍然给出如下错误

仅赋值,调用,递增,递减和新对象表达式可以用作语句

有没有办法使用if-else块来做到这一点?

teo*_*kot 5

您总是可以在View的开头声明局部变量:

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

然后在div中使用它:

<div style="@yourStyle">
Run Code Online (Sandbox Code Playgroud)