none
Bilder aus Datenbank per Datenmodell anzeigen. RRS feed

  • Frage

  • Hallo zusammen,

    ich habe folgendes Problem:

    Ich übertrage bei einem ASP.Net MVC2-Projekt Bilder, die in einer Datenbank gespeichert sind, vom Webservice zum Client. Im dortigen Datenmodell kommt das ByteArray auch ohne Probleme an. Wenn ich jetzt aber versuche dieses Array aus dem Datenmodell per Url.Action an den Controller zu senden, kommt dort nur der Typ des Arrays ("String[]"), nicht aber der Inhalt an.

    Habe ich einen falschen Ansatz für dieses Problem gewählt (also Bilder aus der Datenbank in der View anzeigen)?

    Aufruf des Controllers:

    <img src="<%= Url.Action("GetImage", "Site", new {thumb = Model.Thumb}) %>" />

    Der Controllerrumpf:

    public ActionResult GetImage(byte[] thumb)
    {
          ...
    }

    Ich hoffe, dass mir jemand helfen kann.

    Grüße,

    Rico


    Montag, 11. Juni 2012 07:56

Antworten

  • Ich habe dies wiefolgt gelöst.

    Ich habe mir einen ImageController gebaut, der die Funktion GetImage mit Rückgabetyp FileResult besitzt, was den wesentlichen unterschied zu deiner Methode ausmacht, desweiteren besorge ich mir das byte[] direkt aus der datenbank anhand der id.

        public class ImageController : Controller
       
    {
           
    public DatanbankModel DB { get; set; }

           
    public ImageController()
           
    {

             DB = new Models.DatanbankModel();
           
    }

            Public FileResult GetImage(int id)
          
    {
             
    BildDatei M = DB.ImageSet.First(s => s.ID == id);
               
    if (M.Bild == null)
               
    {
                 
    FileStream FS = new FileStream("../Content/kein_bild.gif", FileMode.Open);
                 
    return File(FS, "image/png");
               
    }
             
    return File(M.Bild, "image/png");
          
    }

    }

    Der Aufruf in der  View wo das Bild angezeigt werden soll, sieht dementsprechend so aus:
    <img src="@Url.Action("GetImage", "Image", new { Id = item.ID })" width="94" height="94" alt="@item.ID" runat="server"/>

    hoffe das ich dir weiterhelfen konnte.

    MFG

    Shmoo

    p.s. der Code einfüge editor hier ist einfach nur scheisse....


    Beende meine FIAE Ausbiildung mit dem Prüfungsteil A am 20.06.2012. Suche Job im MS Umfeld in Wuppertal und Umgebung!




    • Bearbeitet Lennart F Montag, 11. Juni 2012 15:10
    • Als Antwort markiert Rico Machold Dienstag, 12. Juni 2012 06:52
    Montag, 11. Juni 2012 15:00