我有一个新闻列表,其中包含大量新闻项目。我试图让新闻列表的页面名称显示在每个新闻项目上,但这段代码并没有削减它。我收到一条错误消息,指出“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()
感谢任何建议,因为我在任何地方都找不到错误的任何原因。
谢谢
最佳答案
我认为你应该寻找的是:
Model.Content.AncestorOrSelf(2).Name
Model 返回一个 RenderModel 对象,但您想要的是 IPublishedContent 对象,您可以在
Model.Content
属性中找到它。您当然应该在尝试访问名称之前执行空检查,例如
if(Model.Content.AncestorOrSelf(2) != null)
{
sectionTitle = Model.Content.AncestorOrSelf(2).Name;
}
关于razor - Umbraco AncestorOrSelf 从 Model 中消失了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22447324/