Umbraco AncestorOrSelf从Model中失踪?

时间:2014-03-17 05:04:25

标签: razor umbraco

我有一个新闻列表,其中有大量的新闻项目。我正在尝试获取要在每个新闻项目上显示的新闻列表的页面名称,但此代码并未删除它。我收到一条错误,说“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()

任何建议都表示赞赏,因为我无法在任何地方找到任何错误原因。

由于

2 个答案:

答案 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)