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

时间:2016-07-06 10:26:56

标签: css asp.net-mvc razor

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

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

但我得到了一个更复杂的决策块,我应该嵌套2个三元运算符,这不是一个很好的做法。我试过这种方式:

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

并显示错误:

  

预期

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

  

只有赋值,调用,递增,递减和新对象表达式才能用作语句

有没有办法使用if-else块来执行此操作?

1 个答案:

答案 0 :(得分:4)

您始终可以在视图的开头声明一个局部变量:

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

然后在你的div中使用它:

<div style="@yourStyle">