Dan*_*lba 2 html c# asp.net-mvc asp.net-mvc-2
我正在开发MVC应用程序,我需要在浏览器中显示图像,但实际上文件还没有在磁盘上。
byte[]我的模型中只有一个数组,其中包含图像的内容。是否有任何“简单”的技巧可以在视图中显示图像而不将其写入磁盘?
我想到的第一种方法是编写一个临时文件,但是:
因此,我不想将内容写入文件。还有其他方法吗?
先谢谢了。
编辑:结果页面不仅是图像,我需要显示一些文本,下面是图像,例如:
<%= Response.Write("Some text here") %>
<%= /* Here my image */ %>
Run Code Online (Sandbox Code Playgroud)
我将创建一个控制器操作,该操作从字节数组返回图像。在您的视图中,您可以使用常规<img>标签,将src属性设置为呈现图像的控制器操作。
这将是事情是这样的:
[HttpGet]
public ActionResult Render(...)
{
byte[] imageBytes = ...;
MemoryStream imageStream = new MemoryStream();
imageStream.Write(imageBytes, 0, imageBytes.Length);
return new FileStreamResult(imageStream, "image/png"); // might be a different mime type depending on your image type
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以从视图中执行以下操作:
<p>Some text here</p>
<img src="<%= Url.Action("Render", "MyController", new { params as needed }) %>" alt="Image" />
Run Code Online (Sandbox Code Playgroud)