我正在尝试在我的母版页中显示内容,具体取决于我的文档类型的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'的定义,并且没有扩展方法'GetProperty'接受类型'System.Xml.XPath.XPathNodeIterator'的第一个参数可能找到(你错过了使用指令或汇编引用吗?)
最终解决方案: 基于Digbyswifts解决方案,我得到了它使用这个片段:
<%if (umbraco.NodeFactory.Node.GetCurrent().GetProperty("protectContent").Value.ToString().Equals("1")) {%>
<pre>Showing protected content</pre>
<%}%>
答案 0 :(得分:1)
如果您知道节点ID,则可以使用
new Node(id).GetProperty("protectContent").Value.ToString() == "1"
但是,如果您在要查询的页面上,则可以使用:
Node.GetCurrent().GetProperty("protectContent").Value.ToString() == "1"
如果我使用的是高级页面,我希望在我的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();
}
}