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