Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自字节数组的ASP.NET MVC映像_C#_Asp.net Mvc - Fatal编程技术网

C# 来自字节数组的ASP.NET MVC映像

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"/> 这将返回一个图像 如何编写这样一个方法来返回图

目前,我在ViewModel中有一个表示图像的字节数组。我用以下代码显示它:

<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)