【问题标题】:asp.net razor if syntaxasp.net razor if 语法
【发布时间】:2014-05-13 14:11:39
【问题描述】:

我是 ASP.NET MVC 的初学者,我正在尝试使用 If 语句在 asp.net MVC 网站中设置带有 razor 的图像的 src。

此代码有效:

 <img src="@Url.Action("GetPersonPhoto", "Home", new RouteValueDictionary( new { cardid = "696969" }) )" />

我要补充:

@if(Model.HavePhoto)

并将 src 设置为:

"~/Content/images/header-logo.png"

如果 HavePhoto 为假...

我该怎么做?

【问题讨论】:

  • RT(F)M。好吧,说真的......谷歌任何例子。图像源本身不应该是您的 cshtml 页面中的 IMO,而是在控制器中决定并存储在模型 src="@Model.PhotoUrl"
  • 我会让GetPersonPhoto 操作决定使用哪个图像并处理Model.HavePhoto 为假的情况,提供默认图像的url,而不是在视图层中处理此问题跨度>
  • 请参阅stackoverflow.com/questions/9399531/…stackoverflow.com/questions/8061647/… 了解两个选项,您也可以只使用两个不同的img 标签,一个在if 中,一个在else 中

标签: asp.net asp.net-mvc razor


【解决方案1】:
    var source= "~/Content/images/header-logo.png";
    @if(Model.HavePhoto)
    {
       source= Url.Action("GetPersonPhoto", "Home", 
                   new RouteValueDictionary( new { cardid = "696969" }))
    }

    <img src="@source" />

【讨论】:

  • 根据上下文你可能需要包装变量声明@{ var source= "~/Content/images/header-logo.png"; }
  • 谢谢。我有一个带有“@if(Model.HavePhoto)”的空引用异常,但您的解决方案似乎有效。
猜你喜欢
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多