Asp.net Umbraco:从xslt设置文档属性

Asp.net Umbraco:从xslt设置文档属性,asp.net,umbraco,Asp.net,Umbraco,是否可以直接从xslt设置文档类型属性的值?我的页面的页面标题需要根据xslt结果更改,并且页面标题是通过属性设置的 在谷歌上搜索了一段时间,但没有找到我要找的东西,所以我想我会问这里的乌姆布拉人 谢谢据我所知,xslt是只读的。您可以有条件地更改宏中显示为标题的内容(如果是这样,则从属性中显示标题,否则显示其他标题),或者如果确实要设置属性,我建议使用razor脚本:,如上所述,XSLT是只读的,因此无法修改属性,使其在页面呈现时受到影响 但是,您可以在标题标记之间编写一个附加的XSLT宏。此

是否可以直接从xslt设置文档类型属性的值?我的页面的页面标题需要根据xslt结果更改,并且页面标题是通过属性设置的

在谷歌上搜索了一段时间,但没有找到我要找的东西,所以我想我会问这里的乌姆布拉人


谢谢

据我所知,xslt是只读的。您可以有条件地更改宏中显示为标题的内容(如果是这样,则从属性中显示标题,否则显示其他标题),或者如果确实要设置属性,我建议使用razor脚本:

,如上所述,XSLT是只读的,因此无法修改属性,使其在页面呈现时受到影响

但是,您可以在标题标记之间编写一个附加的XSLT宏。此宏可以使用匹配模板。这允许您根据正在处理的XML节点执行不同的操作

由于Umbraco 4.7.x中存储数据的方式,“文档类型别名”用作XML节点。这意味着我们可以匹配您的搜索页面(只要它有自己的DocType)

只需将“搜索”更新为文档类型的名称

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:umb="urn:umbraco.library"
exclude-result-prefixes="umb"
>

  <xsl:output method="xml" omit-xml-declaration="yes"/>
  <xsl:param name="currentPage"/>

  <!-- Match Templates -->
  <xsl:template match="/">
    <xsl:apply-templates select="$currentPage" />
  </xsl:template>

  <!-- Search -->
  <xsl:template match="search">
    WooHoo! I'm the Search page! 
  </xsl:template>

  <!-- All other pages -->
  <xsl:template match="*[@isDoc]">
    <xsl:value-of select="@nodeName" />
  </xsl:template>

</xsl:stylesheet>

呜呼!我是搜索页面!

哇,这太罕见了……到目前为止,只有两个视图,一个是我自己的。。