C# 来自字节数组的ASP.NET MVC映像
目前,我在ViewModel中有一个表示图像的字节数组。我用以下代码显示它:C# 来自字节数组的ASP.NET MVC映像,c#,asp.net-mvc,C#,Asp.net Mvc,目前,我在ViewModel中有一个表示图像的字节数组。我用以下代码显示它: <img src="@String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(Model.Image))" /> 现在,我不希望在源文件中有Base64字符串,而是希望有一个指向图像的链接。比如: <img src="Images/" + Model.Id"/> 这将返回一个图像 如何编写这样一个方法来返回图
<img src="@String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(Model.Image))" />
现在,我不希望在源文件中有Base64字符串,而是希望有一个指向图像的链接。比如:
<img src="Images/" + Model.Id"/>
这将返回一个图像
如何编写这样一个方法来返回图像链接?您可以定义一个控制器操作来为图像服务:
public class ImagesController: Controller
{
public ActionResult Index(int id)
{
byte[] imageData = ... go get your image data from the id
return File(imageData, "image/png"); // Might need to adjust the content type based on your actual image type
}
}
在您看来,只需将img
标记的src
属性指向此控制器操作:
<img src="@Url.Action("Index", "Images", new { id = Model.Id })" />
一种方法是将其添加到新的c#类或HtmlextensionClass中
public static class HtmlExtensions
{
public static MvcHtmlString Image(this HtmlHelper html, byte[] image)
{
var img = String.Format("data:image/jpg;base64,{0}", Convert.ToBase64String(image));
return new MvcHtmlString("<img src='" + img + "' />");
}
}
生成的文件是临时的?@notsoux,这里没有涉及文件。服务器将数据从数据库直接流式传输到客户端,而不创建任何文件。由客户决定如何处理此流。“由客户决定如何处理此流。”。。说得好……:)
@Html.Image(Model.MyImageBytes)