1

如果它登录的用户,它应该显示welcome, [name],否则显示register link

使用aspdotnet店面 - 以下显示welcome,(没有登录名)和register link?似乎无法使其正常工作。

<xsl:when test="/root/System/CustomerFirstName!=''">
                            Welcome, <a href='/account.aspx'><xsl:value-of select="/root/System/CustomerFirstName" disable-output-escaping="yes" /></a>
                            </xsl:when>
                            <xsl:otherwise>
                            <a href='createaccount.aspx?checkout=False' class='register'>
                            Register </a>
                            </xsl:otherwise>
                            </xsl:choose>

我什至在这里关注了第 30 页,但无济于事。

4

2 回答 2

1

我建议改为检查 CustomerIsRegistered 节点,以确定用户当前是否已登录并注册。该值将是“真”或“假”。

这是一个工作示例:

    <xsl:choose>
      <xsl:when test="/root/System/CustomerIsRegistered='true'">
        <!--Customer is registered-->
        <a href="account.aspx">
          <xsl:value-of select="concat('Welcome, ',/root/System/CustomerFirstName)"/>
        </a>
      </xsl:when>
      <xsl:otherwise>
        <!--Customer is not registered-->
        <a href="createaccount.aspx">
          <xsl:attribute name="class">register</xsl:attribute>
          <xsl:text>Register</xsl:text>              
        </a>
      </xsl:otherwise>
    </xsl:choose>

如果您更喜欢检查 CustomerFirstName,那么我建议您测试字符串长度是否大于 0。例如:

<xsl:when test="string-length(/root/System/CustomerFirstName) &gt; 0>

正如迈克尔所说,确保您的选择元素格式正确。如果您的 xslt 标记不正确,则在尝试运行 Xml 包时应该会收到错误消息。

于 2013-05-30T02:55:22.393 回答
0

你应该拥有它。确保它被一个选择节点包围。

          <xsl:choose>
            <xsl:when test="/root/System/CustomerFirstName!=''">
              Welcome, <a href='/account.aspx'>
                <xsl:value-of select="/root/System/CustomerFirstName" disable-output-escaping="yes" />
              </a>
            </xsl:when>
            <xsl:otherwise>
              <a href='createaccount.aspx?checkout=False' class='register'>
                Register
              </a>
            </xsl:otherwise>
          </xsl:choose>

试着把它放在刚开始的时候

<xsl:template match="/">

并在顶部打开调试模式以帮助进行测试。

于 2013-05-29T20:18:28.213 回答