2014-09-04 54 views
0

下面的代码在剃刀的伟大工程:显示括号IF

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

不过,我不知道如何来显示它作为一个内联IF语句。困难的部分是,如果EmployeeNo值存在,它需要用圆括号显示。

我已经尝试了很多方法,但不能得到它的工作。最新的尝试是

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

回答

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) } 

那剃刀如何知道如何解析if块。

+0

令人惊叹!我做了两个,因为它看起来整洁,并感谢包括*两个*片段。 – EvilDr 2014-09-04 15:07:19

+0

我希望我可以+2的更新位:-) – EvilDr 2014-09-04 15:08:58