0

我的页面中有一些代码。

<td valign="top" class="contact-col3">
    <div>
        <p class="blueTxt">@(model.HasProperty("title3") ? model.GetProperty("title3").Value() : "")</p>
        @(model.HasProperty("abningstider") ? model.GetProperty("abningstider").Value() : "")
    </div>
</td>

当我运行代码时出现此错误:对象引用未设置为对象的实例

我一直在运行调试器,这是我在行运行之前检查元素时看到的。

在此处输入图像描述

错误出现在这行代码@(model.HasProperty("abningstider") ? model.GetProperty("abningstider").Value() : "")

有谁知道解决这个问题的方法或发生了什么。

4

2 回答 2

0

我猜可能是这个...

model.GetProperty("abningstider").Value

不是

model.GetProperty("abningstider").Value()

(或者,更好的是,看起来你也可以做 model.Abningstider?)

于 2019-09-27T11:06:18.080 回答
0

如果您使用 ModelsBuilder 并且将 IPublishedContent 转换为类型化模型,则可以使用 model.Abningstider。如果没有,您应该使用model.Value("abningstider");.

您在代码中所做的是访问属性对象,您不需要这样做。您正在检查该属性是否存在于文档类型中,而不是它是否具有值。

要检查值是否存在,请使用HasValue()

@(model.HasValue("abningstider") ? model.Value("abningstider") : "")

如果您使用的是 ModelsBuilder,您可以使用类型化模型,但首先您必须从您的视图继承UmbracoViewPage<>并指定您的模型:

@inherits Umbraco.Web.Mvc.UmbracoViewPage<YourModel>

然后你可以像这样使用它:

Model.Abningstider
于 2019-10-12T06:03:19.663 回答