mvc - 从数据库中获取图像并显示到详细信息视图

时间:2017-02-22 04:45:14

标签: c# sql image model-view-controller byte

模型:

public byte[] TECH_IMAGE { get; set; }

控制器:

//DETAILS
    public ActionResult Details(int? id)
    {
        if (id == null)
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            tblTechDeployment tech = db.tblTechDeployments.Find(id);

        if (tech == null)
            return HttpNotFound();
        return View(tech);

        var i = db.tblTechDeployments.Find(id);
        var vm = new tblTechDeployment
        {
            TECH_IMAGE = "data:image/png;base64," + Convert.ToBase64String(i.TECH_IMAGE)
        };

        //var image = (from i in db.tblTechDeployments
        //             select i.TECH_IMAGE).FirstOrDefault();
        //var stream = new MemoryStream(image.ToArray());
        //return new FileStreamResult(stream, "image/jpeg");
    }

详细信息视图:

    <dt>
        @Html.DisplayNameFor(model => model.TECH_IMAGE)
    </dt>

    <dd>
        @*@Html.DisplayFor(model => model.TECH_IMAGE)*@<img     src="@Model.TECH_IMAGE" />
    </dd>

我有一个mvc项目,显示所有技术人员的详细信息按钮,点击它时将显示来自数据库的技术人员的所有信息。除了图像,我正确地完成了所有工作。

数据库中的图像数据类型是图像。它将数据显示为

0x89504E470D0A1A0A0000000D4948445200000258000000.......................(it's so long...)..........

在详细信息视图中看起来也是如此。

在控制器中注释掉的4行是我在网络中找到的另一种方式。但我无法让它发挥作用。或者我做错了吗?

也是这段代码:

var i = db.tblTechDeployments.Find(id);
    var vm = new tblTechDeployment
    {
        TECH_IMAGE = "data:image/png;base64," +     Convert.ToBase64String(i.TECH_IMAGE)
    };

我收到错误:

  

无法将类型字符串隐式转换为字节。

如何将存储在数据库中的图像显示到详细信息视图?

0 个答案:

没有答案