【问题标题】:Display parenthesis in Razor inline IF在 Razor 内联 IF 中显示括号
【发布时间】:2014-09-04 14:43:07
【问题描述】:

以下代码在 Razor 中运行良好:

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

但是,我不知道如何将其显示为内联 IF 语句。困难的部分是如果 EmployeeNo 值存在,它需要显示在括号中。

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

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

【问题讨论】:

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


    【解决方案1】:

    看起来你正在尝试做一个三元组。您只能使用有效的 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 块的方式。

    【讨论】:

    • 太棒了!我都做了,因为它看起来更整洁,并感谢包含 both sn-ps。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2021-05-11
    相关资源
    最近更新 更多