Umbraco Can';即使对象为';定义

Umbraco Can';即使对象为';定义,umbraco,umbraco8,Umbraco,Umbraco8,我的页面中有一些代码 <td valign="top" class="contact-col3"> <div> <p class="blueTxt">@(model.HasProperty("title3") ? model.GetProperty("title3").Value() : "")</p> @(model.HasProperty("abningstider") ? model.GetProper

我的页面中有一些代码

<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(“title3”)?model.GetProperty(“title3”).Value():“”)

@(model.HasProperty(“abningstider”)?model.GetProperty(“abningstider”).Value():“”)
当我运行代码时,会出现以下错误:对象引用未设置为对象的实例

model.GetProperty("abningstider").Value()
我一直在运行调试器,这是我在行运行之前检查元素时看到的

错误出现在代码
@(model.HasProperty(“abningstider”)?model.GetProperty(“abningstider”)。Value():“”)的这一行中。


有没有人知道如何解决这个问题,或者发生了什么

我猜可能是这个。。。它是

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

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

(或者,更好的是,看起来您也可以使用model.Abningstider?

如果您使用的是ModelsBuilder,并且您正在将IPPublishedContent强制转换为键入的模型,则可以使用model.Abningstider。如果没有,您应该使用
model.Value(“abningstider”)

您在代码中所做的是访问property对象,而不需要这样做。您正在检查doctype中是否存在该属性,而不是该属性是否有值

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

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

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

它不能是
(“abningstider”).Value
,因为
.Value
是一个函数,所以它需要
)你在哪里看到的?你试过我的两个建议了吗?我在代码中运行了它,VS会告诉你它是函数、方法还是其他什么。还有
model.Abningstider
会也不会工作,因为Abningstider不是声明的属性,而是umbraco加载的动态添加属性。我错过了您在v8上的消息,抱歉:-/但是model.Abningstider肯定会工作-如果您在调试时可以看到模型上的属性,我会说它可以供您使用,不管VS怎么说。
Model.Abningstider