3

我有以下代码,但是如果我没有图像(它是媒体选择器),则会出现错误

<umbraco:Macro runat="server" language="cshtml">
@{
    dynamic image = new umbraco.MacroEngines.DynamicMedia(@Model.whereMap);
    <img class="where-map" src="@image.umbracoFile" width="150" height="250"/>
 }
</umbraco:Macro>

我已经尝试了所有明显的东西来检查空值,但没有任何乐趣。

谢谢

4

4 回答 4

10

看看这些剃须刀方法:

  • @Model.HasProperty(字符串属性别名)
  • @Model.HasValue(字符串属性别名)
  • @Model.IsNull(字符串属性别名)

参考:Umbraco Razor 备忘单

于 2012-09-29T08:55:42.860 回答
4

在 Umbraco 6 MVC 中,您可以使用

键入:

@{
    if(Model.Content.HasValue("mainImage")){
        var mediaItem = Umbraco.TypedMedia(Model.Content.GetPropertyValue("mainImage")); 
        <img src="@mediaItem.GetPropertyValue("umbracoFile")" alt="@mediaItem.GetPropertyValue("Name")"/>    
    }   
}

动态的:

@{      
    if (CurrentPage.HasValue("mainImage")){                                         
        var dynamicMediaItem = Umbraco.Media(CurrentPage.mainImage);
        <img src="@dynamicMediaItem.umbracoFile" alt="@dynamicMediaItem.Name"/>
    }
}
于 2014-01-14T23:38:48.773 回答
0

尝试

CurrentPage.HasProperty("mainImage")
于 2015-07-09T00:01:56.477 回答
-1

尝试使用以下代码

@if(!String.IsNullOrEmpty(@Model.whereMap))
{
 <img class="where-map" src="@image.umbracoFile" width="150" height="250"/> 
}
于 2015-06-26T09:39:09.553 回答