C#ASP.NET MVC:视图中的单行If子句?

时间:2009-07-22 23:38:57

标签: c# asp.net-mvc

我遇到了一个微不足道的问题..但无法解决。

我认为这有:

<% if (!Model.DisplayText) { %> <%= Model.MyText %> <% } %>

<% if (!Model.DisplayText) { %> <%= Model.MyText %> <% } %>

如您所见,我使用 3x &lt;%和%&gt;。这就像糟糕的代码一样尖叫。但我似乎无法让这个工作在一条线上。抛出各种奇怪的错误(例如分号丢失,当我添加一个它会抛出其他东西)时:

<% if (!Model.DisplayText) { Model.MyText } %>

有什么想法吗?!

3 个答案:

答案 0 :(得分:11)

尝试:

<%= Model.DisplayText ? "" : Model.MyText %>

<% if(!Model.DisplayText) Response.Write(Model.MyText); %>

答案 1 :(得分:1)

此:

 <%= foo %>

通常相当于:

 <% Response.Write(foo) %>

所以你可以写:

 <% if (!Model.DisplayText) { Response.Write(Model.MyText); } %>

但我不明白你从中得到了什么。你的原始代码很好。或者你可以使用三元运算符,正如OrbMan建议的那样。

答案 2 :(得分:1)

基本上就像写Response.Write(你的数据)  意味着代码将执行,但它不会专门写出任何东西。 您可以在if块中使用Response.Write来输出所需的数据。     

或者按照OrbMan的回答,他打败了我。