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

Ami*_*mir 3 c# asp.net asp.net-mvc razor asp.net-mvc-4

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

@( ViewBag.HaveBeenHere ? submission.DurationInMonths )
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

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

我知道:是为了别的,但在这种情况下,我没有其他的.

当我像这样添加它:

@( ViewBag.HaveBeenHere ? submission.DurationInMonths : "" )
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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

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

Bil*_*ill 10

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

@( ViewBag.HaveBeenHere ? submission.DurationInMonths.ToString() : "" )
Run Code Online (Sandbox Code Playgroud)

ToString()当然,添加将使返回类型相同.


eva*_*nal 5

那个简短的手是if-else所以它只是在这里不起作用.你可以这样做;

@( if(ViewBag.HaveBeenHere) { submission.DurationInMonths; } )
Run Code Online (Sandbox Code Playgroud)

它不再是.如果你有一个衬垫,你可以把它放在与if条件相同的线上.