【问题标题】:How to use an inline if with razor?如果使用剃须刀,如何使用内联?
【发布时间】:2014-10-18 14:48:14
【问题描述】:

如果 with razor 如下所示,我正在尝试创建内联:

@(Model.ImageId == null ?  "---" : @<text><img src='@(Url.Action(MVC.File.Get(Model.ImageId)))'/></text>)

我不断收到错误:

 Type of conditional expression cannot be determined because there is no implicit conversion between 'string' and 'lambda expression'

 cannot convert from 'System.Web.Mvc.ActionResult' to 'string'

如何使用内联 if 解决此问题

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    Razor 没有很好的语法来输出您所描述的内容。可以使用this answer 中定义的内容。

    如果是我的代码,我想使用三元运算符,我可能会创建一个 Razor 辅助方法并以这种方式使用它:

    @Html.Raw(Model.ImageId == null ? "---" : OutputImageName(Model.ImageId).ToHtmlString())
    
    @helper OutputImageName(string imageId /* change type to your actual type */)
    {
        <img src='@(Url.Action(MVC.File.Get(imageId)))'/>
    }
    

    【讨论】:

      【解决方案2】:

      试试这个代码:

      @(Model.ImageId == null ?  "---" : string.Format(@"<text><img src='{0}'/></text>", Url.Action(MVC.File.Get(Model.ImageId))))
      

      希望对您有所帮助。

      【讨论】:

        【解决方案3】:
        <text>@(Model.ImageId == null ?  "" : string.Format("<img src='{0}'/>", Url.Action(MVC.File.Get(Model.ImageId))))</text>
        

        【讨论】:

        • 虽然这可能会解决问题,但如果您提供额外的解释,这篇文章会更有价值。
        猜你喜欢
        • 2014-03-09
        • 2020-04-15
        • 2020-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        相关资源
        最近更新 更多