在Razor内联IF中显示括号

时间:2014-09-04 14:43:07

标签: asp.net-mvc razor razor-2

以下代码在Razor中非常有用:

@if (!string.IsNullOrEmpty(Model.EmployeeNo))
{
    @:(@Model.EmployeeNo)
}

但是,我无法弄清楚如何将其显示为Inline IF语句。困难的部分是,如果EmployeeNo值存在,则需要将其显示为括在括号中。

我尝试了很多方法,但无法让它发挥作用。最新的尝试是

@if(!string.IsNullOrEmpty(Model.EmployeeNo ? @:(@Model.EmployeeNo) : string.Empty))

1 个答案:

答案 0 :(得分:2)

看起来你正试图做一个三元组。您只能使用有效的C#代码执行此操作(您不能在其中嵌入任何文本或HTML。因此,以下方法可行:

@(!string.IsNullOrEmpty(Model.EmployeeNo) ? "(" + Model.EmployeeNo + ")" : string.Empty)

或者,您可以使用string.Format代替连接:

string.Format("({0})", Model.EmployeeNo)

重点是它必须是实际的代码。

此外,对于三元组,您不包含if部分,以防您在上面的代码中没有注意到。如果您确实想使用if而不是三元组,但仍然只使用一行,那很好,但您仍然必须包括括号:

@if (!string.IsNullOrEmpty(Model.EmployeeNo)) { @:(@Model.EmployeeNo) }

Razor知道如何解析if块。