如何使用razor语法在asp.net中使用多个三元运算符

时间:2015-09-18 21:06:56

标签: asp.net-mvc razor

我通常使用三元运算符来处理非常简单的条件,特别是在HTML属性中。例如:

<fieldset id="Employee" style="@(Model.Type == "Employee" ? "" : "display: none")" >

但我希望有一个多元三元运算符,但下面的代码不起作用:

<fieldset id="multi" 
   style="@(Model.Type == "W2" || 
            Model.Type == "1099" ? "" : "display: none")" >

2 个答案:

答案 0 :(得分:0)

您可以使用Html.Raw。

onActivityResult(int requestCode, ...) {
    if (requestCode == DATE_CONTACT_ACTIVITY) {
        intervalIntent = new Intent(this, B.class);
        startActivityForResult(intervalIntent, RETRY_TIME_ACTIVITY);
    } else if (requestCode == RETRY_TIME_ACTIVITY) {
        intervalMiercuri = new Intent(this, C.class);
        startActivityForResult(intervalMiercuri, ALEGERE_MIERCURI_ACTIVITY);
    }

答案 1 :(得分:0)

我宁愿通过引入新属性(例如ShowMulti)将此类逻辑放在我的视图模型中,以使我的视图非常简单:

<fieldset id="multi" style='@(Model.ShowMulti ? "" : "display: none")' >

在视图模型方面,属性如下所示:

public bool ShowMulti { get { return Type == "W2" || Type == "1099" } }

作为替代方案,您还可以在css中引入一个名为hide的类:

.hide {
   display: none;
}

并在视图的开头实现您的逻辑:

@{
   var showMulti = Model.Type == "W2" || Model.Type == "1099" ? "" : "hide";
} 

并在您的代码中:

<fieldset id="multi" class="@showMulti" >

但这种方法通常取决于您的观点大小。