gpt4 book ai didi

c# - Controller 是否有可能以干净的方式返回基于参数的图像?

转载 作者:行者123 更新时间:2023-11-30 18:03:47 24 4
gpt4 key购买 nike

我正在尝试在 ASP MVC3 中使用图表生成库 (ChartDirector)。

ChartDirector 正在根据相当大的数据结构生成条形图和 HTML 图像 map 。

我正在寻找一种方法:

  1. 直接使用图像,无需将其写入文件
  2. 使用生成的 HTML 图像映射

我可以生成一张图片并很好地显示它:

public ActionResult barChart() // ImageController
{
// Code to make chart from hard-coded data
var imageBytes = chart.makeChart2(Chart.PNG);
var imageMap = chart.getHTMLImageMap();
FileContentResult byteStream = new FileContentResult(image, "image/png");
return byteStream;
}

然后直接在其中一个 View 中引用 Controller ,例如:

<img src="/Image/barChart"/>

问题是我找不到一个好的方法来获取必要的数据来构建 Controller 的条形图。

  • 我不能让 Controller 将图像数据添加到模型中,因为 HTML要求图像链接自某个 URI——一个 Controller 。
  • 似乎没有一个 HTML 助手允许我将模型发送到 Controller
  • 我研究过制作一个 HTML 帮助器和一个 ImageResult 类型,但它没有解决图像映射的问题,而且我能找到的构建 URI 的唯一方法“BuildUrlFromExpression”似乎也没有存在于 MVC3 中。

我可以完成这一切的一种方法是将生成图表所需的模型放入 TempData,然后调用将使用 TempData 的 Controller ,并让 Controller 将 HTML 图像映射也放入 TempData,这将被读取由 View 。这对我来说似乎非常丑陋。

我或许可以通过某种 session ID 存储数据,但这似乎并没有好多少。

我正在查看(以及其他):Can an ASP.NET MVC controller return an Image?但它不适用,因为该 Controller 正在读取一些预先生成的图像。

最佳答案

如果我理解你的问题,你只是在寻找一种方法来向 Controller 提供模型数据以用于生成图像?

img 标记中的 URL 应该能够像任何其他 URL 一样包含参数。也就是说,您应该能够:

<img src="/Home/ImageData/4?src=maps" />

它会调用这个方法:

class HomeController
{
public ActionResult ImageData ( int id, string src )
{
}
}

在 View 中生成链接只需使用 UrlHelper.ActionLink 并提供正确的参数即可。

关于c# - Controller 是否有可能以干净的方式返回基于参数的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com