AspDot Net Storefront 9.x为正文添加每个类别的类

时间:2015-05-07 20:59:42

标签: aspdotnetstorefront

我需要将每个类别的名称添加到body类中。我已经搜索了一种方法来转储template.master文件中的类别名称的变量而没有运气。我可以获取页面名称或元信息,但不能获取类别名称。

所以它会     <body class="mycategory">

我在整个页面上的样式(甚至在entity.category.xml.config之外)都会受到此类的影响。

更新:因此网站上的示例结构将是服装&gt;男士&gt;品牌1&gt;产品1.我想要一个出现在整个服装部分的课程,无论我是在产品,子类别还是子服务类别。

1 个答案:

答案 0 :(得分:0)

在主文件中开头:

<body class='body <aspdnsf:XmlPackage runat="server" PackageName="bodyclass" />'>

然后创建一个名为bodyclass.xml.config的xml包。在该文件中添加:

<xsl:if test="/root/Runtime/EntityName and /root/Runtime/EntityID">
    <xsl:text> e-</xsl:text>
    <xsl:value-of select="/root/Runtime/EntityName" />
    <xsl:text>-</xsl:text>
    <xsl:value-of select="/root/Runtime/EntityID" />
</xsl:if>

这将创建类别为e-category-53而不是类别名称的类,但它们将为您提供相同的灵活性。它们也适用于其他实体类型,如部门和制造商。

这里另一个有用的是:

<xsl:text> url-</xsl:text>
<xsl:value-of select="translate(aspdnsf:StrReplace(/root/Runtime/PageName, '.aspx', ''), '.', '')" />

这将生成一个基于url的body类,如'url-c-88-sename'。这将适用于所有页面,而不仅仅是实体页面。