2014-11-21 1 views
1

Я пытаюсь преобразовать существующее приложение WinForms в веб-приложение MVC.Обратное изображение контроллера для использования в браузере

Я пытаюсь отобразить изображение с контроллера.

В настоящее время я получаю System.Drawing.Image от функции, и я пытаюсь выяснить, как это сделать для представления.

Это мой контроллер:

public System.Drawing.Image getStudentImage(string PersonID) 
{ 
     System.Drawing.Image studentImage = ClientFunctions.GetStudentImage(GlobalVariables.networkstuff, GlobalVariables.testAuth, PersonID); 
     return studentImage; 
} 

И тогда, на мой взгляд, я хотел бы, чтобы отобразить это изображение ...

Будем надеяться, что так:

<img id="@pupil.PupilInfo.PersonID" src="~/TakeRegister/getStudentImage/@pupil.PupilInfo.PersonID" alt="" /> 

Когда я запустите код. Я получаю сломанные изображения в браузере, и когда я смотрю на «src» изображения, он выглядит так:

http://localhost:19340/TakeRegister/getStudentImage/3058 

Я получаю чувство, что я делаю больше, чем 1 вещь неправильно здесь ... (?)

Может кто-нибудь дать мне какие-либо указатели, пожалуйста?

+0

http://bit.ly/1vvAdl7 –

+1

возможно дубликат [Лучший способ визуализации System.Drawing.Image в ASP.NET MVC 3 View] (http://stackoverflow.com/questions/11546865/ best-to-render-system-drawing-image-in-asp-net-mvc-3-view) –

+0

@AntP спасибо! - отлично работает ... я явно неправильно формулировал свой вопрос в google, так как я не нашел этого :( –

ответ

5

Вы можете использовать return File() в своем действии.

public ActionResult Image(int PersonID) 
     { 
      System.Drawing.Image image = ClientFunctions.GetStudentImage(GlobalVariables.networkstuff, GlobalVariables.testAuth, PersonID); 

      using (var ms = new MemoryStream()) 
      { 
       image.Save(ms, ImageFormat.Jpeg); 

       return File(ms.ToArray(), "image/jpeg"); 
      } 
     } 
Смежные вопросы