【问题标题】:Call an action on my controller from an XSLT从 XSLT 调用我的控制器上的操作
【发布时间】:2021-07-28 14:02:54
【问题描述】:

我的 XSLT 中有以下内容:

<a>
        <xsl:attribute name="href">
          <xsl:value-of select="concat($DownloadPath,FilePath)" />
        </xsl:attribute>
        <xsl:attribute name="target">_blank</xsl:attribute>
        <img src="Content/Images/download.jpg" style="border-width:0px;">
          <xsl:attribute name="title">
            <xsl:value-of select="FilePath" />
          </xsl:attribute>
        </img>
      </a>

在我的家庭控制器上,我有一个操作 GetFile(string file),它应该在单击 Href 时返回文件。

我怎样才能做到这一点?我一直在寻找不同的解决方案,但似乎没有任何效果。

【问题讨论】:

  • 这是一个 XSLT 问题吗?如果您的 XSLT 生成带有指向 URI 的链接的 HTML,并且该 URI 指向在 ASP.NET 代码中实现的某个控制器,那么我不明白为什么该问题与 XSLT 相关;目前尚不清楚您在服务器上拥有什么代码以及您期望在客户端上发生什么。 “应该返回文件是什么意思”,浏览器是否应该只下载链接到的文件并让浏览器用户保存它?
  • @MartinHonnen 抱歉,我的问题不是很清楚。 xslt 连同 xml 创建和显示给用户的 html 页面。在该页面中,用户可以单击链接来下载文件。但是我只有文件的物理路径(即 c:\temp\file.pdf),所以我需要在我的控制器上调用一个操作来获取文件并将其返回给用户
  • 也许首先在您使用的 ASP.NET 框架(MVC、哪个版本、.NET 框架或核心)的问题中添加标签和解释。或尝试现有的答案,如stackoverflow.com/questions/730699/…
  • 我认为这是一个 HTML 问题。当您知道什么 HTML 将实现所需的运行时行为时,使用 XSLT 生成该 HTML 应该很简单。你的问题是你不知道你希望你的样式表输出什么 HTML。
  • 我希望我的 XLST 生成的内容如下:">

标签: c# xslt href


【解决方案1】:

当单击没有 $DownloadPath 的链接时,我会让您的控制器负责返回文件。这样你就可以控制住了。 因此,href 是对您的控制器的调用,其中包含足够的信息,您的控制器能够解析该文件以作为下载返回。

【讨论】:

    【解决方案2】:

    我通过搜索和尝试找到了答案。我在我的 XSLT 中写了以下内容:

    <xsl:attribute name="href">
        <xsl:value-of select="$UserLanguageLower" />\Home\GetFile?fileName=<xsl:value-of select="FilePath"/>
    </xsl:attribute>
    

    这就是诀窍。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      相关资源
      最近更新 更多