我有一个包含 Byte[] 类型属性的模型。我想在 html 标签的 MVC 视图中显示这个属性。我可以用什么方法来显示这个图像?
user1318951
问问题
6212 次
2 回答
9
这是我在项目中需要做的:对于我的对象集合的每个实例,我在 Razor View 中的标签下方
<img src="@Url.Action("GetPhoto", new { photoId = Model.PhotoId })" />
然后在控制器中我添加了一个动作:
public ActionResult GetPhoto(int photoId)
{
byte[] photo = GetPhotoFromDb(photoId);
return File(photo, "image/jpeg"); }
于 2012-07-14T07:41:05.730 回答
7
在您的控制器上创建一个操作以返回文件响应:
public class MyController : Controller
{
public ActionResult ViewFile()
{
byte[] bytes;
string mime;
return File(bytes, mime);
}
}
然后,您可以像这样显示图像:
<img src="/mycontroller/viewfile" />
编辑:一个详细的例子:
public class Photo
{
public int ID {get;set;}
public string Title {get;set;}
}
public class PhotoController : Controller
{
public ActionResult Index()
{
return View(new List<Photo> { new Photo { ID = 1, Title = "first" }, new Photo { ID = 2, Title = "second" }});
}
public ActionResult Photo(int ID)
{
return File(GetPhotoBytes(ID), "image/jpg");
}
}
看法:
@model IEnumerable<Photo>
@foreach (var photo in Model)
{
<img src="@Url.Action("photo", "photo", new { ID = photo.ID })" title="@photo.Title" />
}
于 2012-07-13T17:01:14.250 回答