asp.net MVC 3 - 从 SQL Server 数据库中检索回溯映像并在 MVC3 中显示



我以二进制格式在数据库中存储了一些图像,现在我想在我的视图中显示这些图像,我们如何将这些图像再次从二进制格式转换为图像格式?

这是我在控制器中的动作 menthod

           public ActionResult DislpayAllImage()
           {
            DataSet dsa = new DataSet();
            dsa = objImage.getAllImages();
            DataTable dt = new DataTable();
            dt = dsa.Tables[0];
            if (dt != null)
            {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Byte[] image = (Byte[])dt.Rows[i]["UsImage"];
                return File(image, "image/jpg");
             }
            }
        return View();

    }

这是我在模型中的代码

     public DataSet getUserImage(int Id)
     {
        DataSet ds = new DataSet();
        try
        {
            DbCommand db = dbcon.GetStoredProcCommand("GetImage");
            dbcon.AddInParameter(db, "@Id", DbType.Int16, Id);
            db.CommandType = CommandType.StoredProcedure;
            return ds = dbconstr.ExecuteDataSet(dbCmd);
        }
        catch(Exception ex)
        {
            return ds = null;
        }
    }

视图

 @foreach( var image in ViewData.Images )
 {
  <img src="@Url.Action("DislpayImage", "Home",new { id = image.ImageID })" />
 }

如何在剃刀视图中显示我的图像,上面的代码也可以吗?

你需要像这样从视图中调用控制器的 Action( DislpayImage()

):
<img src="<%= Url.Action("DislpayImage", "Controller") %>" alt="myimage" />

<img src="@Url.Action("DislpayImage", "Controller")" alt="myimage" />

希望对您有所帮助。


编辑

只需将要显示的图像的 id 传递给控制器操作

public ActionResult DislpayImage(int id)
     {
        DataSet dsa = new DataSet();
        dsa = objImage.getUserImage(id);
        var imagedata = dsa.Tables[0].Columns["MyImage"];
        return File(imagedata, "image/jpg");
     }

现在传递要在视图中显示的图像的 id,如下所示:

<img src="@Url.Action("DislpayImage", "Controller", new { id="2" })" alt="myimage" />

现在您将获得 id 为 2 的图像。

<% foreach( var image in ViewData.Images ) { %> 
  <%= Html.Image( Url.Action( "Show", "Image", new { id = image.ImageID } ) ) %> 
<% } %>

 public class ImageController : Controller
    {
        public void Show(string id)
        {
           Image image = GetImage(id);

           Response.Buffer = True;
           Response.Clear();
           Response.ContentType = "image/gif";
           Response.BinaryWrite( image.Data );
           Response.End();
       }
    }

此回复只是来自另一个论坛的答案的副本。这不是我自己的。我将其粘贴到此处是为了帮助您和此论坛中的其他人有同样的问题。

这是主要链接: http://forums.asp.net/post/2264885.aspx

最新更新