Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ASP MVC4 wie kann ich ein Bild das ich als byte[] habe, auf der Webseite anzeigen??
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

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

beantworten | zitieren | melden

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!!
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

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.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers