2

我需要在整个 MVC 4 项目中将图像传递给多个视图。最干净的方法是什么?图像保存为字节数组。我将图像保存到数据库中(这是由用户输入的),我不想创建大量的视图模型。请注意,这是一个在 C# 中使用 Razor2 视图的 MVC 4 应用程序。

4

2 回答 2

3

你可以在你的控制器中使用这样的东西:
对于可下载的文件:

public ActionResult GetImage(string name)
{
    byte[] image = GetImageFromDb(name);
    return File(image, "image/jpg", "image1.jpg");
}

对于视图/页面中包含的文件:

public FileContentResult GetImage(string name)
{
    byte[] image = GetImageFromDb(name);
    return FileContentResult(image, "image/jpg");
}

并在您的视图中使用它,如下所示:

<img src="@Html.Action("GetImage", new { name = "image1"})">
于 2013-07-24T09:01:19.480 回答
1

好吧,我有点离题,但感谢 Raidri 引导我朝着正确的方向前进。控制器...

      public FileContentResult GetLogoImage(int id)
    {
        var logo = _adminPractice.GetAll().FirstOrDefault(n => n.ID == id);
        if (logo != null && logo.PracticeLogo != null)
        {
            return new FileContentResult(logo.PracticeLogo, "image/jpeg");
        }
        else
        {
            return null;
        }
    }

看法............

     <img src="@Url.Action("GetLogoImage", new { id = Model.AdminPractice.ID })" />
于 2013-07-24T12:06:29.937 回答