C# 找不到与命名空间';关联的脚本或扩展对象;urn:UmbracoHelper';

C# 找不到与命名空间';关联的脚本或扩展对象;urn:UmbracoHelper';,c#,css,xslt,umbraco,C#,Css,Xslt,Umbraco,我是在Umbraco 4.8下开发的 我试图从XSLT访问一个类,从中检索一些东西。 该类名为UmbracoHelper。 我在XSLT的顶部添加了以下内容: xmlns:UmbracoHelper=“urn:UmbracoHelper” 排除结果前缀“UmbracoHelper” 但是现在当我想调用下面的函数时: <xsl:for-each select="$GalleryImages/nodeId"> <xsl:variable name="myNode" select

我是在Umbraco 4.8下开发的

我试图从XSLT访问一个类,从中检索一些东西。 该类名为UmbracoHelper。 我在XSLT的顶部添加了以下内容:

  • xmlns:UmbracoHelper=“urn:UmbracoHelper”
  • 排除结果前缀“UmbracoHelper”
但是现在当我想调用下面的函数时:

<xsl:for-each select="$GalleryImages/nodeId">
<xsl:variable name="myNode" select="UmbracoHelper:GetNode(.)"/>
</xsl:for-each>

我面临着这个错误:

找不到与命名空间“urn:UmbracoHelper”关联的脚本或扩展对象。


我错过了什么?

简而言之:编写代码并构建(UmbracoHelper)。将程序集添加到bin文件夹。确保在xsltextensions.config中添加对程序集的引用。然后在XSLT中通过urn引用


请参阅:

简而言之:编写代码并生成(UmbracoHelper)。将程序集添加到bin文件夹。确保在xsltextensions.config中添加对程序集的引用。然后在XSLT中通过urn引用


请参阅:

事实上,虽然乔纳森的答案是正确的,但这种方法有点不受欢迎

更简单的方法是在解决方案中添加对umbraco.dll的引用。然后,您可以使用
[RestExtension(“TestAlias”)]

[XsltExtension]
属性,如图所示。然后,您可以将.cs文件放到App_Data文件夹中,或者编译它并将dll文件放到Umbraco安装的bin目录中。这种方法的优点是不需要自己编辑配置文件

事实上,虽然乔纳森的答案是正确的,但这种方法有点不受欢迎

更简单的方法是在解决方案中添加对umbraco.dll的引用。然后,您可以使用
[RestExtension(“TestAlias”)]

[XsltExtension]
属性,如图所示。然后,您可以将.cs文件放到App_Data文件夹中,或者编译它并将dll文件放到Umbraco安装的bin目录中。这种方法的优点是不需要自己编辑配置文件

我试过用UmbracoHelper替换Testalia,但仍然不起作用。我又错过了什么吗?您也添加了[XsltExtension]装饰吗?我尝试了,并用UmbracoHelper替换了TestAlias,但仍然不起作用。我又错过了什么吗?您是否也添加了[XsltExtension]装饰?