1

データベースにいくつかの画像をバイナリ形式で保存しましたが、これらの画像をビューに表示したいのですが、これらの画像をバイナリ形式から画像形式に再度変換するにはどうすればよいですか?

これは私のコントローラーのアクションメソッドです

           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 })" />
 }

かみそりビューで画像を表示するにはどうすればよいですか?また、上記のコードは問題ありませんか?

4

2 に答える 2

2

DislpayImage()次のように、View からController の Action( ) を呼び出す必要があります。

<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 の画像が取得されます。

于 2013-01-23T05:02:05.907 に答える
0
<% 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

于 2013-01-23T04:29:45.717 に答える