【问题标题】:Umbraco AncestorOrSelf missing from Model?模型中缺少 Umbraco AncestorOrSelf?
【发布时间】:2014-03-17 05:04:24
【问题描述】:

我有一个新闻列表,其中有大量新闻项目。我试图让新闻列表的页面名称显示在每个新闻项目上,但这段代码并没有削减它。我收到一条错误消息,提示“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()

感谢任何建议,因为我在任何地方都找不到错误的任何原因。

谢谢

【问题讨论】:

    标签: razor umbraco


    【解决方案1】:

    我认为你应该寻找的是:

    Model.Content.AncestorOrSelf(2).Name
    

    Model 返回一个 RenderModel 对象,但您需要的是 IPublishedContent 对象,您可以在 Model.Content 属性中找到它。

    您当然应该在尝试访问名称之前执行空检查,例如

    if(Model.Content.AncestorOrSelf(2) != null)
    {
        sectionTitle = Model.Content.AncestorOrSelf(2).Name;
    }
    

    【讨论】:

    • 感谢 ProNotion 和 Amir。当然,我之前尝试过,但没有奏效。不过这次工作了。谢谢。
    【解决方案2】:

    尝试使用 Model.Content.AncestorOrSelf 或 Model.Content.AncestorOrSelf 可用的输入变量有 int (level) 和 string (NodeTypeAlias)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 2016-03-25
      • 2018-05-26
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多