ASP.Net MVC как отобразить свойство изображения модели в представлении?

Я новичок в asp.net mvc, но я пытаюсь сделать смешное приложение с GDI+, и мне нужно сделать некоторое представление изображения с помощью asp.net mvc.

у меня есть модель, которая имеет свойство изображения:

namespace DomainModel.Entities
{
    public class BackgroundImage
    {
        // Properties
        public Image Image {get; private set; }

        public BackgroundImage()
        {
            Image = Image.FromFile(@"D:ProjectZeroDomainModelimagebkg.PNG");

        }
    }
}

контроллер отправляет в представление следующее:

public ActionResult Index()
        {

            BackgroundImage bkImg = new BackgroundImage(); 
            return View(bkImg);
        }

вид выглядит так:

<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 %>

как отобразить это свойство изображения?

мне нужно это фоновое изображение для div. Мне не нужно изменять размер изображения, мне нужно только покажите его в нормальном размере.

есть ли помощник Html, который я пропускаю?

Спасибо, за ваше время!

2 ответов


вам нужно написать действие контроллера, которое запишет изображение в поток ответов и установит правильный тип контента, чтобы сказать "image/png". Тогда вы можете использовать img тег для ссылки на это действие в вашем представлении:

public ActionResult Image()
{
    byte[] image = GenerateImage();
    return File(image, "image/png");
}

и внутри вашего взгляда:

<img src="<%= Url.Action("Image") %>" alt="" />

вам понадобится HttpHandler, если вы хотите делать такие вещи.

http://dotnetperls.com/ashx-handler