Umbraco升级7.5.11后的例外情况

时间:2017-03-15 09:32:04

标签: c# razor umbraco7

在我们的Umbraco网站上运行7.5.11升级后,我在其中一个部分视图宏文件(cshtml)中出现异常:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Umbraco.Web.PublishedContentExtensions.GetPropertyValue(IPublishedContent content, String alias)

异常指向这一行:

var mediaItem = Umbraco.TypedMedia(item.GetPropertyValue("propAliasString"));

该行在此foreach循环中:

@foreach (var item in news.Where(x => x.GetPropertyValue<int>("group") == year.Key).OrderByDescending(y => y.GetPropertyValue("date")))
    {
        var mediaItem = Umbraco.TypedMedia(item.GetPropertyValue("announcement"));

            <div class="panel-body">
                <span class="glyphicon glyphicon-file" aria-hidden="true"></span>&nbsp;<a href="@mediaItem.GetPropertyValue("umbracoFile")" target="_blank">@item.GetPropertyValue("headline")</a>
                <p style="margin-left:16px;" class="date">@( Convert.ToDateTime(item.GetPropertyValue<string>("date")).Date.ToString("d. MMMMM yyyy"))</p>
            </div>
    }

我试图浏览Umbraco文档,了解有关此问题的api从7.4到7.5的变化。

在升级之前,这有效。

你们有没有遇到过这种错误? - 更重要的是找到了解决方案?

最好的问候 的Jesper

1 个答案:

答案 0 :(得分:0)

找到解决方案 - 有点尴尬。

需要检查属性是否为空值:

var mediaItem = Umbraco.TypedMedia(item.GetPropertyValue(".."));
if(mediaItem != null)
{
 ....
}

无论如何,我的理由是它在升级之前有效。 : - )

/的Jesper