如果在图像src内部条件内联

时间:2014-08-11 10:37:39

标签: jquery asp.net-mvc

我正在使用MVC 4,我有一个图像,动态渲染图像:

<img id="imgThumbnail" src="@Url.Content(@ControlUtilities.FormatUrl(" ~/GetImage?imageid=" + @Model.ImageID))" />

现在,我想查看,如果@ControlUtilities.FormatUrl("~/GetImage?imageid="+ @Model.ImageID)返回null或空白,则将其替换为'/img/noimage.gif'

类似的东西:

src= "@Url.Content(@ControlUtilities.FormatUrl("~/GetImage?imageid=" + @Model.ImageID)) || '/img/noimage.gif'"

是否可以在HTML中内联?或者我必须通过jQuery来处理它?<​​/ p>

为什么我要这样做,当API GetImage返回空白/ null时,输出是一个空图像标记,或者是精确的断开图像显示。替代方案也会有所帮助。

3 个答案:

答案 0 :(得分:0)

  

是否可以在HTML中内联?

是的,你绝对可以进行null内联检查

src="@(Url.Content(ControlUtilities.FormatUrl("~/GetImage?" + Model.ImageID) ?? "/img/noimage.gif"))

如果您需要检查它是否为空白,那么它将开始变得不可读,所以我建议您将其移动到变量

@{
    var imageUrl = ControlUtilities.FormatUrl("~/GetImage?" + Model.ImageID);
    if (String.IsNullOrEmpty(imageUrl)) {
        imageUrl = "/img/noimage.gif";
    }
}
...
<image id="imgThumbnail" src="@Url.Content(imageUrl)" />

答案 1 :(得分:0)

试试这个:

<img id="imgThumbnail" src= "@Url.Content(@ControlUtilities.FormatUrl(("~/GetImage?imageid=" 
+ @Model.ImageID)??"/img/noimage.gif"))"/>

答案 2 :(得分:0)

@{
    string src;
}
<img id="imgThumbnail" src="@(string.IsNullOrEmpty(src = Url.Content(@ControlUtilities.FormatUrl("~/GetImage?imageid=" + Model.ImageID))) ? "'/img/noimage.gif'" : src)" />

如果你只使用'??'运算符,空白'src'可以放在img标签