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

StackOverflow https://stackoverflow.com/questions/1409602

Вопрос

Я новичок в 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, по которому я скучаю?

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

Это было полезно?

Решение

Вам нужно написать действие контроллера, которое запишет изображение в поток ответов и установить правильный тип контента, например, "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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top