0

我正在尝试根据文档类型的真/假属性在我的母版页中显示内容。我正在使用内联 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>
<%}%>
4

1 回答 1

1

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

new Node(id).GetProperty("protectContent").Value.ToString() == "1"

但是,如果您在要查询的页面上,则可以使用:

Node.GetCurrent().GetProperty("protectContent").Value.ToString() == "1"

如果我使用母版页,我希望CurrentNode在我的代码隐藏 .cs 文件中有一个访问器,它返回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();
    }
}
于 2013-09-02T16:39:29.730 回答