从DB显示图像

时间:2012-06-26 09:46:58

标签: c# .net asp.net-mvc-3 razor

对不起这个问题。有很多信息,但不幸的是我没有找到答案。请你帮助我好吗? 我有一个主要观点

详细信息视图:

@model Shops.ShopModel
......
@Html.Partial("_PictureViewer", Model.Picures)
......

在主视图中包含PartialView

_PictureViewer查看:

@model List<Model.PictureOriginalModel>
.....
@foreach (var p in Model)
{ 
  <img src='@new File(@p.Trunk, "image/jpeg");' alt='' />
}
.....

PictureOriginalModel.cs:     名称模型     {

  public class PictureOriginalModel
 {
    [DataType(DataType.Text)]
    [Display(Name = "File Name.")]
    public string FileName { get; set; }

    [Display(Name = "Trunk.")]
    public Image Trunk { get; set; }

    [DataType(DataType.Text)]
    [Display(Name = "Description.")]
    public string Description { get; set; }
  }
}

结果我有一个错误:错误CS1031:预期类型 你能澄清一下如何正确显示图像吗?

4 个答案:

答案 0 :(得分:1)

您可以执行以下操作,

public FileContentResult GetImage(...) 
{
  //do somethings
   return File(image, mimeType);
}

<img src="<%= Url.Action("GetImage", "PictureOriginalModel", new { Id = someId}) %>" />

答案 1 :(得分:1)

您需要创建用于返回图像类型响应的操作

控制器代码

public class HomeController
{
    public ActionResult Image( int id )
    {
        var imageData = getImagebyte(); // your function to return image byte

        return File(imageData, "image/jpg");
    }
}

您对此操作的查看调用

<img src='@Url.Action("Image","Home", new { id = 1 })' />

答案 2 :(得分:0)

您需要创建返回图像的控制器操作,例如:

[HttpGet]
public ActionResult GetImage(long id, ...) 
{
  ...
   return File(fileBytes, "image/png");
}

在客户端代码中,只需设置与控制器GetImage方法的正确链接

答案 3 :(得分:0)

[HttpGet]
public FileResult GetImage(int evaluatorId, int employeeId)
{
    byte[] imgByteArr = this._employeeManager.GetEmployeePhoto(employeeId);
    return imgByteArr != null ? File(imgByteArr, "image/png") : null;
}