ASP.Net MVC Как отобразить свойство изображения модели в виде? - PullRequest
6 голосов
/ 11 сентября 2009

Я новичок в 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:\ProjectZero\DomainModel\image\bkg.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 Helper, который мне не хватает?

Спасибо, что уделили время!

Ответы [ 2 ]

15 голосов
/ 11 сентября 2009

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

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

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

<img src="<%= Url.Action("Image") %>" alt="" />
1 голос
/ 11 сентября 2009

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

http://dotnetperls.com/ashx-handler

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...