当我尝试使用以下内容在Details页面模板中显示byte []数组图像时: public FileContentResult RenderPhoto(byte[] photo){ // var array = (byte[])Session["photo"]; // return File(array, "image/jpeg"); return File(photo, "ima
public FileContentResult RenderPhoto(byte[] photo)
{
// var array = (byte[])Session["photo"];
// return File(array, "image/jpeg");
return File(photo, "image/jpeg");
}
<img src="@Url.Action("RenderPhoto", Model.Photo)"/>
照片为空.
如果我在会话中存储student.Photo:
//
// GET: /Student/Details/5
public ViewResult Details(int id)
{
Student student = db.Students.Find(id);
Session["photo"] = student.Photo;
return View(student);
}
并尝试显示从Session(上面的注释行)中检索值的图像.
为什么我在第一种情况下获得空值?
将学生传递给ViewResult详细信息(int id)中的View后,Model.Photo不再保留该值?
Why I’m getting a null value in the first case?
您不能在< img>中将字节数组传递给服务器.标签. < img> tag只是向指定的资源发送GET请求.正确的方法是使用id:
<img src="@Url.Action("RenderPhoto", new { photoId = Model.PhotoId })" />
然后:
public ActionResult RenderPhoto(int photoId)
{
byte[] photo = FetchPhotoFromDb(photoId);
return File(photo, "image/jpeg");
}
