我不知道如何测试我的 umbraco 站点中的非强制性属性是否为空,并且当前如果该属性为空,我的页面会导致 XSLT 解析错误。我当前的代码很简单:
<xsl:variable name="media" select="umbraco.library:GetMedia(sectionImage, 0)" />
<xsl:if test="$media"> <!-- or $media != null -->
<xsl:variable name="url" select="$media/umbracoFile" />
<xsl:element name="img">
<xsl:attribute name="src"><xsl:value-of select="$url" />
</xsl:attribute>
</xsl:element>
</xsl:if>
我正在运行 Umbraco v6.0.6,并且我使用了 umbraco wiki 上提供的错误检查解决方案,网址为http://our.umbraco.org/wiki/reference/umbracolibrary/getmedia
当我在 C# 中尝试类似的样式逻辑时,我发现测试变量 $media 将具有诸如“umbraco.presentation.nodeFactory.Property”之类的值。此填充内容会错误地绕过 if 测试,然后导致崩溃。
这发生在各种数据类型上;媒体文件、文本字符串、整数等。
感谢您花时间阅读我的帖子。