ASP.Net MVC Como exibir uma propriedade de imagem de um modelo em um ponto de vista?
-
05-07-2019 - |
Pergunta
Eu sou novo para asp.net MVC, mas eu estou tentando fazer um app engraçado com GDI + e eu preciso fazer alguma imagem vista com asp.net MVC.
Eu tenho um modelo que tem uma propriedade de imagem:
namespace DomainModel.Entities
{
public class BackgroundImage
{
// Properties
public Image Image {get; private set; }
public BackgroundImage()
{
Image = Image.FromFile(@"D:\ProjectZero\DomainModel\image\bkg.PNG");
}
}
}
O controlador envia ao exibir o seguinte:
public ActionResult Index()
{
BackgroundImage bkImg = new BackgroundImage();
return View(bkImg);
}
Os view parece com isso:
<p> Height: </p><%= Model.Image.Height //it prints the height of the image %> </br>
<p> Width: </p><%= Model.Image.Width //it prints the width %> </br>
<p> Image: </p><%= Model.Image //does not work to display the image %>
Como faço para mostrar que a propriedade imagem?
Eu preciso que a imagem de fundo para uma div. Eu não preciso para redimensionar a imagem, eu só preciso exibi-lo em seu tamanho normal.
Existe um auxiliar HTML que eu perdi?
Obrigado, pelo seu tempo!
Solução
Você precisa escrever uma ação de controlador que irá escrever a imagem para o fluxo de resposta e definir o tipo de conteúdo apropriado dizer "image / png". Então você pode usar a tag img
para fazer referência a esta ação em seu ponto de vista:
public ActionResult Image()
{
byte[] image = GenerateImage();
return File(image, "image/png");
}
E dentro do seu ponto de vista:
<img src="<%= Url.Action("Image") %>" alt="" />
Outras dicas
Você vai precisar de um HttpHandler se você quer fazer coisas como esta.