简写如果没有其他Razor视图(ASP.NET MVC4)

时间:2014-04-24 17:35:39

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我正在尝试检查一个布尔值,然后显示一个整数:

@( ViewBag.HaveBeenHere ? submission.DurationInMonths )

我收到错误:

  

CS1003:语法错误,':'预期

我知道:是为了别人,但在这种情况下,我没有别的。

当我这样添加时:

@( ViewBag.HaveBeenHere ? submission.DurationInMonths : "" )

我收到此错误:

  

CS0173:无法确定条件表达式的类型,因为'int'和'string'之间没有隐式转换

如何使用简写if if语句检查布尔值并在视图中显示整数?

3 个答案:

答案 0 :(得分:10)

如果你想保留语法,你可以这样做:

@( ViewBag.HaveBeenHere ? submission.DurationInMonths.ToString() : "" )

添加ToString()当然会使返回类型相同。

答案 1 :(得分:5)

那个简短的手是if-else所以它只是在这里工作。你可以做;

@( if(ViewBag.HaveBeenHere) { submission.DurationInMonths; } )

而且它已经不在了。如果你有一个衬垫,你可以把它放在与if条件相同的一行。

答案 2 :(得分:2)

您没有。只需使用if声明即可。

@( if(ViewBag.HaveBeenHere) submission.DurationInMonths; )

Conditional operator

  

条件运算符(?:)返回取决于两个值之一   关于布尔表达式的值。