我的页面上有一些代码。
<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() : "")
的这一行
有人知道解决此问题的方法吗?
答案 0 :(得分:0)
我猜可能是这个...
model.GetProperty("abningstider").Value
不是
model.GetProperty("abningstider").Value()
(或者,甚至更好的是,看起来您也可以建模。Abningstider吗?)
答案 1 :(得分:0)
如果使用ModelsBuilder,并且将IPublishedContent强制转换为键入的模型,则可以使用model.Abningstider。否则,您应该使用model.Value("abningstider");
。
您在代码中所做的就是访问属性对象,而您无需这样做。您正在检查属性是否存在于doctype中,而不是它是否具有值。
要检查该值是否存在,请使用HasValue()
:
@(model.HasValue("abningstider") ? model.Value("abningstider") : "")
如果您使用的是ModelsBuilder,则可以使用类型化的模型,但是首先必须从UmbracoViewPage<>
继承视图并指定模型:
@inherits Umbraco.Web.Mvc.UmbracoViewPage<YourModel>
然后您可以像使用它一样
Model.Abningstider