Wyświetlanie obrazu tablicy bajtów [] z bazy danych w szablonie strony szczegółów przy użyciu ASP.NET MVC
Kiedy próbuję wyświetlić obraz tablicy bajtów [] w szablonie strony szczegółów z:
public FileContentResult RenderPhoto(byte[] photo)
{
// var array = (byte[])Session["photo"];
// return File(array, "image/jpeg"); return File(photo, "image/jpeg");
}<img src="@Url.Action("RenderPhoto", Model.Photo)"/>
zdjęcie null.
Jeśli zapiszę ucznia Zdjęcie w sesji:
//
// GET:/Student/Details/5public ViewResult Details(int id)
{
Student student = db.Students.Find(id); Session["photo"] = student.Photo; return View(student);
}
i spróbuj wyświetlić obraz pobierający wartość z sesji (skomentowane linie powyżej), to działa.
Dlaczego w pierwszym przypadku otrzymuję wartość null?
Po przekazaniu ucznia do widoku w
ViewResult Details (int id),
Model.Photonie ma już tej wartości?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Nie możesz wysłać tablicy bajtów na serwer w tagu . Znacznik po prostu wysyła żądanie GET do określonego zasobu. Prawidłowym sposobem na to jest użycie identyfikatora:
i wtedy:
Anonimowy użytkownik
Potwierdzenie od:
To nie zadziała, Model.Photo (prawdopodobnie twoja tablica bajtów) będzie traktowane jako obiekt do wyprowadzania wartości tras. Wygeneruje trasę z publicznymi właściwościami obiektu tablicy, prawdopodobnie zgodnie z
To byłby całkiem bezużyteczny adres URL. Po załadowaniu strony w przeglądarce przeglądarka zapyta o ten obraz, wywołując metodę RenderPhoto, ale nie ma parametru o nazwie photo, więc wiązanie się nie powiedzie, a nawet jeśli był parametr o nazwie photo (AFAIK), nie ma logiki w DefaultModelBinder, aby utworzyć tablicę bajtów z ciągu, dlatego photo ma wartość null.
Musisz tylko przekazać anonimowy obiekt z właściwością Id do Url.Action
Zostanie to przekonwertowane na ciąg zapytania, prawdopodobnie w następującej kolejności (ale to zależy od twoich tras)
Następnie musisz odzyskać dane do zdjęcia w metodzie RenderPhoto
Jaskółka oknówka