Laden...

ASP MVC4 wie kann ich ein Bild das ich als byte[] habe, auf der Webseite anzeigen??

Erstellt von Howard vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.223 Views
Howard Themenstarter:in
84 Beiträge seit 2007
vor 11 Jahren
ASP MVC4 wie kann ich ein Bild das ich als byte[] habe, auf der Webseite anzeigen??

Okay Leute ich dreh hier gleich durch,

ich baue gerade erst seit 2 Wochen mit ASP herum also habt Nachsicht 😁

Ich suche heute schon den ganzen Tag aber ich finde irgendwie nicht die Lösung.

Ich habe ein Bild als byte[] vorliegen und möchte diese einfach irgendwie auf einer Website darstellen. Ich hab auch schon vieles ausprobiert von ImageHelpern bis PDF-In-Image aber der bringt mir einfach nicht das Bild auf die Seite.

mein Controller sieht so aus


public FileContentResult GetPhotoDetails(int ID)
{
	actPhoto... aus der DB besorgtes Photo

	return File(actPhoto, "Image/jpg");
}

und die Webseite so:



<div style="background-color:Aqua">
	<img src="@{Html.ImageHandler("GetPhotoDetails","Main",new {ID=1});}" />
</div>


dort auf der Webseite hab ich alles schon probiert:

  • Html.RenderAction
  • Html.Action
  • Url.Action

ich hab echt keine Ahnung was ich da noch machen kann.

P.S.: bitte keine Diskussion darüber anfangen ob das speichern von Pics in ner DB sinnvoll ist oder nicht... ich bin im BrownField.. also kann ich erstmal nix ändern!!

1.002 Beiträge seit 2007
vor 11 Jahren

Hallo Howard,

du musst lediglich die URL deiner Action im src-Attribut deines <img>-Tags angeben. Das kann wie folgt aussehen:

<img src="@Url.Action("GetPhotoDetails", "ControllerName", new { ID = 1 })" />

Der erste Parameter der UrlHelper.Action-Methode ist der Name der Action, der zweite der des Controllers. Als dritten Parameter kannst du ein Objekt übergeben, das weitere Route-Daten enthält.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

Howard Themenstarter:in
84 Beiträge seit 2007
vor 11 Jahren

ISCH RAAASSTE AUS!!!

lag doch der Fehler Tatsache an der den beiden äusseren Klammern und dem Semikolon am Ende!?!?!

UNFASSBAR!!!

mein code:

<img src="@{Html.ImageHandler("GetPhotoDetails","Main",new {ID=1});}" />

dein code:


<img src="@Url.Action("GetPhotoDetails", "Main", new { ID = 1 })" />

DANKE MANN!!

Kannste noch kurz die Erklärung nachliefern was der Schrott soll?
weil an anderer Stelle benutze ich das (funktionierend) so:


"@{Html.RenderAction("Translate","Main",new {germanWord = "Foto Nr."});}"

mit klammern UND Semicolon

16.806 Beiträge seit 2008
vor 11 Jahren

Du solltest Dich vllt in der Hinsicht mal damit befassen, was diese ganzen anonymen Aufrufe mit new {} und Actions etc bewirken und wie mit diesen umgegangen wird.

Dass Dein Code einfach aus logischen Gründen falsch ist, sollte verständlich sein.
Der Browser ruft immer (außer, die Bytes sind im HTML bereits eingebettet) eine rohe URL auf und will dessen Result, um das Bild anzuzeigen. Das genau ermöglicht Url.Action(), wenn ein ActionResult benötigt wird.
Du hingegen rufst hier einen Handler auf (was auch immer dahinter steckt, ist nämlich so kein Standard), dessen Resultat (wahrscheinlich) niemals in der Seite landet bzw. kann der Browser damit nichts anfangen.

RenderAction, Action, RouteUrl sind in Sachen MVC absolute Grundlagen - und die solltest Du wirklich beherrschen, da sie verdammt viel positives, wie auch negatives (Performance von Url.Action oder dynamischen Parametern ist grauenvoll).
Also nimm Dir die Zeit und schau Dir mal in der MSDN an was es da so gibt und was man damit anfangen kann.
Wenn Du das nämlich versäumst wirste schnell wieder gegen die Wand rennen.