将布尔值传递给.Net Extension对象



我有以下XSL:

  <xsl:variable name="PriorityCall">
    <xsl:choose>
      <xsl:when test="$PriorityFlag = 1 or $PriorityFlag = 2 or $PriorityFlag =3">
        <xsl:value-of select="true()"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="false()"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

我想将PriorityCall的值传递到.Net扩展对象中,如下所示:

<xsl:value-of select="UCInterface:InsertNewGroup($UserRef, $SiteCode, $PriorityCall)" />

.Net方法的签名:

public string InsertNewGroup(string userRef, string siteCode, bool prioritySite)

.Net中的值始终为true。然而,如果我这样调用扩展方法,我可以传递false:

<xsl:value-of select="UCInterface:InsertNewGroup($UserRef, $SiteCode, false())" />

如何通过从$PriorityCall中获取布尔值来传递布尔值?

将变量定义为<xsl:variable name="PriorityCall" select="$PriorityFlag = 1 or $PriorityFlag = 2 or $PriorityFlag =3"/>

在您当前的设置中,您的变量是(在XSLT1.0中)结果树片段类型的,这是一个结果树片段,它包含一个非空的文本节点,恰好包含布尔值的表示。但这将永远转化为真。如果您只是将select属性与布尔XPath表达式一起使用,如上所示,那么该值的类型为boolean。

相关内容

  • 没有找到相关文章

最新更新