我有一个新闻列表,其中有大量的新闻项目。我正在尝试获取要在每个新闻项目上显示的新闻列表的页面名称,但此代码并未删除它。我收到一条错误,说“Umbraco.Web.Models.RenderModel'不包含'AncestorOrSelf'的定义”
我希望这个使用级别而不是nodeID,因此它可以在其他页面上重复使用。这是我到目前为止所得到的: -
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "BasePage.cshtml";
var sectionTitle = Model.AncestorOrSelf(2).pageName;
}
<div id="contentHeader">
<div class="row contentHeader">
<div class="col-md-6 page-title no-left-pad">
<h1>@sectionTitle</h1>
</div>
<div class="col-md-6 no-right-pad">
<a href="/care-homes" class="btn btn-care-profile pull-right">Use our CareFinder</a>
</div>
</div>
</div>
@RenderBody()
任何建议都表示赞赏,因为我无法在任何地方找到任何错误原因。
由于
答案 0 :(得分:6)
我认为你应该寻找的是:
Model.Content.AncestorOrSelf(2).Name
Model返回一个RenderModel对象,但你想要的是你在Model.Content
属性中找到的IPublishedContent对象。
在尝试访问该名称之前,您当然应该执行空检查,例如
if(Model.Content.AncestorOrSelf(2) != null)
{
sectionTitle = Model.Content.AncestorOrSelf(2).Name;
}
答案 1 :(得分:1)
尝试使用 Model.Content.AncestorOrSelf或Model.Content.AncestorsOrSelf 可用的输入变量是int(级别)和字符串(NodeTypeAlias)