Umbraco Razor导航访问自定义字段

Umbraco Razor导航访问自定义字段,razor,umbraco,Razor,Umbraco,我试图建立一个导航,根据CMS中的设置自动包含某些页面 我使用了sitemap Partial宏,并尝试添加一个if语句来检查页面属性,如:@if(!item.HideSubPages){ 但是,我只得到以下错误: Umbraco.Core.Models.IPublishedContent' does not contain a definition for 'HideSubPages' and no extension method 'HideSubPages' accepting a fir

我试图建立一个导航,根据CMS中的设置自动包含某些页面

我使用了sitemap Partial宏,并尝试添加一个if语句来检查页面属性,如:
@if(!item.HideSubPages){

但是,我只得到以下错误:

Umbraco.Core.Models.IPublishedContent' does not contain a definition for 'HideSubPages' and no extension method 'HideSubPages' accepting a first argument of type 'Umbraco.Core.Models.IPublishedContent' could be found (are you missing a using directive or an assembly reference?)
这是我的全部代码

@继承Umbraco.Web.Macros.PartialViewMacroPage
@使用Umbraco.Core.Models
@使用Umbraco.Web
@*
此代码段将站点所有可见页面的链接列为嵌套的无序HTML列表。
工作原理:
-它使用名为Traverse()的自定义Razor帮助器来选择和显示标记和链接。
*@
@{var selection=Model.Content.Site();}
@*通过将根节点传递给下面的“遍历”辅助对象来渲染站点地图*@
@导线测量(选择)
@*要遍历所有子体的帮助器方法*@
@辅助遍历(IPPublishedContent节点)
{
@*更新级别以反映您希望站点地图的深度*@
常量int MaxLevelForItemAP=4;
@*选择可见的子项*@
var selection=node.Children.Where(x=>x.IsVisible()&&x.level0)
{
    @foreach(选择中的var项目) {
  • @*对所有子页面再次运行遍历帮助程序*@ @如果(!item.hidesubpage){ @导线测量(项目) }
  • }
} }
试试看

item.GetPropertyValue(“隐藏子页面”)
相反

您希望使用动态类型,但正在处理IPPublishedContent。动态并不是将来可以使用的,因为我相信对它们的支持将在下一个“大”版本的Umbraco(v8)中结束。因此GetProperty/GetPropertyValue是您的朋友:-)

item.GetPropertyValue<bool>("hideSubPages")