如何使用 razor 在 Umbraco 中显示图像文件夹中的图像?

发布于 2025-01-07 15:35:30 字数 1338 浏览 0 评论 0原文

几乎所有如何使用图像库中的显示图像的示例都是通过 xslt 进行的,但是 Umbraco 5.0 将不再支持 xslt。

以下是我在 xslt 中需要的示例:

<xsl:param name="currentPage"/>

<xsl:template match="/">
      <xsl:variable name="image" select="macro/imageFolderAlias"/>
    <xsl:variable name="mediaFolderID" select="number($currentPage/*[name() = $image])" />

    <xsl:if test="$mediaFolderID &gt; 0">
<ol>
      <xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaFolderID, 1)" />
  <xsl:for-each select="$mediaNode//Image [@nodeTypeAlias ='Image']">    

<li>
<a>
<xsl:attribute name="href"><xsl:value-of select="current()/umbracoFile"/></xsl:attribute> 
  <h4><xsl:value-of select="current()/altText"/></h4>
<img >
<xsl:attribute name="src"><xsl:value-of select="concat(substring(current()/umbracoFile, 0, string-length(current()/umbracoFile) - string-length(current()/umbracoExtension)), '_thumb.jpg')"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="current()/altText"/></xsl:attribute>

</img>
</a>
   </li>
</xsl:for-each>
</ol>
    </xsl:if>
</xsl:template>

razor 中的等效项应该是什么?

仅供参考:imageFolderAlias 是一个参数。

谢谢

Almost all examples of how to use display images from the image gallery are over xslt, however Umbraco 5.0 will not support xslt's anymore.

Here's an example of what I need in xslt:

<xsl:param name="currentPage"/>

<xsl:template match="/">
      <xsl:variable name="image" select="macro/imageFolderAlias"/>
    <xsl:variable name="mediaFolderID" select="number($currentPage/*[name() = $image])" />

    <xsl:if test="$mediaFolderID > 0">
<ol>
      <xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaFolderID, 1)" />
  <xsl:for-each select="$mediaNode//Image [@nodeTypeAlias ='Image']">    

<li>
<a>
<xsl:attribute name="href"><xsl:value-of select="current()/umbracoFile"/></xsl:attribute> 
  <h4><xsl:value-of select="current()/altText"/></h4>
<img >
<xsl:attribute name="src"><xsl:value-of select="concat(substring(current()/umbracoFile, 0, string-length(current()/umbracoFile) - string-length(current()/umbracoExtension)), '_thumb.jpg')"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="current()/altText"/></xsl:attribute>

</img>
</a>
   </li>
</xsl:for-each>
</ol>
    </xsl:if>
</xsl:template>

What should be the equivalent in razor?

FYI: imageFolderAlias is a parameter.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生百味 2025-01-14 15:35:30

我回答了我的问题,因为有关 umbraco 和 xslt 到 razor 转换的信息太少了。

这是答案代码:

@using umbraco.cms.businesslogic.media;
@using uComponents.Core;
@using uComponents.Core.uQueryExtensions;

@{
  var parameter = @Parameter.imageFolderAlias;  
  var folderId = Convert.ToInt32(@Model.GetProperty(@parameter).Value);     
  if (@folderId > 0)
  {
    Media startMedia = new Media(@folderId);   
    @: <ol>
    var mediaNode = umbraco.library.GetMedia(folderId, true);
    foreach(Media m in startMedia.GetChildMedia())
    {
      string umbracoImageFileName = @m.getProperty("umbracoFile").Value.ToString();
      string umbracoImageExtension = @m.getProperty("umbracoExtension").Value.ToString();
      var thumnail = String.Concat(@umbracoImageFileName.Substring(0, (@umbracoImageFileName.Length - @umbracoImageExtension.Length - 1)),"_thumb.jpg");     
      @: <li>
      @: <a href="@umbracoImageFileName">
      @: <h4> @m.getProperty("altText").Value </h4>
      @: <img src="@thumnail" alt="@m.getProperty("altText").Value" />
      @: </a> 
      @: </li>
    }
    @: </ol>
  }
}

您应该根据您的需要进行调整。

此处<获取了一些代码/strong>

I answered my question, since is so little information about umbraco and xslt to razor transformations.

Here's the answer code:

@using umbraco.cms.businesslogic.media;
@using uComponents.Core;
@using uComponents.Core.uQueryExtensions;

@{
  var parameter = @Parameter.imageFolderAlias;  
  var folderId = Convert.ToInt32(@Model.GetProperty(@parameter).Value);     
  if (@folderId > 0)
  {
    Media startMedia = new Media(@folderId);   
    @: <ol>
    var mediaNode = umbraco.library.GetMedia(folderId, true);
    foreach(Media m in startMedia.GetChildMedia())
    {
      string umbracoImageFileName = @m.getProperty("umbracoFile").Value.ToString();
      string umbracoImageExtension = @m.getProperty("umbracoExtension").Value.ToString();
      var thumnail = String.Concat(@umbracoImageFileName.Substring(0, (@umbracoImageFileName.Length - @umbracoImageExtension.Length - 1)),"_thumb.jpg");     
      @: <li>
      @: <a href="@umbracoImageFileName">
      @: <h4> @m.getProperty("altText").Value </h4>
      @: <img src="@thumnail" alt="@m.getProperty("altText").Value" />
      @: </a> 
      @: </li>
    }
    @: </ol>
  }
}

You should adapt it based to your necessities.

Took some code from HERE

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文