Jak wiadomo mamy nową ActionResult nazwie FileResult w wersji RC1 ASP.NET MVC.Jak powrócić ze stanu 304 FileResult w ASP.NET MVC RC1
Dzięki tym metodom działania mogą dynamicznie zwracać obraz do przeglądarki. Coś takiego:
public ActionResult DisplayPhoto(int id)
{
Photo photo = GetPhotoFromDatabase(id);
return File(photo.Content, photo.ContentType);
}
W kodzie HTML, możemy użyć czegoś takiego:
<img src="http://mysite.com/controller/DisplayPhoto/657">
Ponieważ obraz jest zwracany dynamicznie, musimy znaleźć sposób buforowania zwrócony strumień tak, że don Trzeba ponownie odczytać obraz z bazy danych. Myślę, że możemy to zrobić z czymś takim, nie jestem pewien:
Response.StatusCode = 304;
ta informuje przeglądarkę, że masz już obraz w swojej pamięci podręcznej. Po prostu nie wiem, co zwrócić w mojej metody działania po ustawieniu StatusCode na 304. Czy powinienem zwrócić wartość null lub coś podobnego?
W pierwszym wniosku, ustawić właściwość ETag takiego: HttpContext.Current.Response.Cache.SetETag (someUniqueValue); W kolejnych żądaniach, czytając ETag wiem, że obraz jest w pamięci podręcznej przeglądarki i dlatego muszę zwrócić 304 – Meysam
Użyj EmptyResult, a nie FileResult po powrocie 304. –