【问题标题】:Shorthand If without else in Razor view (ASP.NET MVC4)速记 If without else in Razor 视图 (ASP.NET MVC4)
【发布时间】:2014-04-25 01:38:35
【问题描述】:

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

@( ViewBag.HaveBeenHere ? submission.DurationInMonths )

我收到一个错误:

CS1003:语法错误,应为“:”

我知道 : 用于 else,但在这种情况下我没有 else。

当我这样添加时:

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

我收到此错误:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • @Jonesy 他们收回了它,所以我认为他们错过了我添加的ToString()。也许我应该在我的回答中指出这一点!
    • 他们没有收回
    • 哦,嗯,好吧。没什么大不了的。无论如何,我都添加了说明。
    • 谢谢!这行得通!不敢相信我能做到 .ToString()!
    【解决方案2】:

    那个简写是 if-else 所以它在这里不起作用。你可以这样做;

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

    它不再是。如果你有一个衬里,你可以把它和if 条件放在同一行。

    【讨论】:

      【解决方案3】:

      您不需要。只需使用if 语句。

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

      Conditional operator

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

      【讨论】:

        猜你喜欢
        • 2014-08-08
        • 2013-07-18
        • 1970-01-01
        • 2016-10-06
        • 2011-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多