我知道如何使用三元运算符在给定条件下格式化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
块来执行此操作?
答案 0 :(得分:4)
您始终可以在视图的开头声明一个局部变量:
@{
var yourStyle = "";
if(Model.Condition)
{
yourStyle = "float:left;";
}
else
{
yourStyle = "float:right;";
//any other conditions and logic
}
}
然后在你的div中使用它:
<div style="@yourStyle">