C# 使用内联C获取umbraco属性#

C# 使用内联C获取umbraco属性#,c#,umbraco,C#,Umbraco,我试图根据文档类型上的true/false属性在母版页中显示内容。我使用的是内联C#,我做到了这一点: <% if (umbraco.library.IsLoggedOn() && umbraco.library.GetXmlNodeById("0").GetProperty("protectContent").Value.ToString() == "1") {%> <h1>Logged on and showing protected content

我试图根据文档类型上的true/false属性在母版页中显示内容。我使用的是内联C#,我做到了这一点:

<% if (umbraco.library.IsLoggedOn() && umbraco.library.GetXmlNodeById("0").GetProperty("protectContent").Value.ToString() == "1") {%> 
<h1>Logged on and showing protected content</h1>
<%}%>

已登录并显示受保护的内容
这是我收到的错误消息:

编译器错误消息:CS1061:'System.Xml.XPath.XPathNodeIterator'不包含'GetProperty'的定义,并且找不到接受'System.Xml.XPath.XPathNodeIterator'类型的第一个参数的扩展方法'GetProperty'。(是否缺少using指令或程序集引用?)

最终解决方案: 基于Digbyswifts解决方案,我用以下代码片段实现了它:

<%if (umbraco.NodeFactory.Node.GetCurrent().GetProperty("protectContent").Value.ToString().Equals("1")) {%> 
    <pre>Showing protected content</pre>
<%}%>

显示受保护的内容

如果您知道节点ID,可以使用

Node.GetCurrent().GetProperty("protectContent").Value.ToString() == "1"
但是,如果您在要查询的页面上,您可以使用:

public partial class BaseMaster : System.Web.UI.MasterPage
{
    public Node CurrentNode { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        CurrentNode = Node.GetCurrent();
    }
}
如果我使用的是母版页,我希望在codebehind.cs文件中有一个
CurrentNode
访问器,该访问器返回
Node.GetCurrent()
,但有一个支持字段,因此每次调用时都不会请求它,例如

public partial class BaseMaster : System.Web.UI.MasterPage
{
    public Node CurrentNode { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        CurrentNode = Node.GetCurrent();
    }
}