Двигатель бритвы MVC3 - PullRequest
       1

Двигатель бритвы MVC3

1 голос
/ 27 февраля 2012

Я использую бритвенный движок mvc3

из вида Я вызываю функцию с Uri.Action, которая возвращает FilecontentResult

 <img src="@Url.Action("GetImg", "Controller", new { id = Model.Id })" alt="Person Image" /> 

Функция:

  public FileContentResult GetImg(int id)
            {
                var byteArray = _context.Attachments.Where(x => x.Id == id).FirstOrDefault();
                if (byteArray != null)
                {
                    return new FileContentResult(byteArray.Content, byteArray.Extension);
                }
                    return null;
            }

if byteArrayis empty функция возвращает нуль

как узнать из представления, что вернула функцию?

Мне нужно что-то вроде этого

    if(byteArray == null)
      <img src="default img" alt="Person Image" />     
    else
     {
  <a class="highslide" href="@Url.Action("GetImg", "Controller", new { id = Model.Id })" id="thumb1" onclick="return hs.expand(this)">
                        <img src="@Url.Action("GetImg", "Controller", new { id = Model.Id })" alt="Person Image" /> </a>    
      }

Ответы [ 2 ]

1 голос
/ 27 февраля 2012
public ActionResult GetImg(int id)
{
    var byteArray = _context.Attachments.Where(x => x.Id == id).FirstOrDefault();
    if (byteArray == null)
    {
        // we couldn't find a corresponding image for this id => fallback to the default
        var defaultImage = Server.MapPath("~/images/default.png");
        return File(defaultImage, "image/png");
    }
    return File(byteArray.Content, byteArray.Extension);
}

и, на ваш взгляд, просто:

<img src="@Url.Action("GetImg", "Controller", new { id = Model.Id })" alt="Person Image" /> 

или если вы пишете собственный HTML-помощник для создания этого тега <img> еще проще:

@Html.PersonImage(Model.Id)
0 голосов
/ 27 февраля 2012

Что ты хочешь сделать?

Если показывается изображение по умолчанию, то вместо нуля возвращается изображение по умолчанию.

Если это что-то более сложное (например, показать загрузчик или другую ссылку), то добавьте свойство к вашей модели, которое управляет этим, например, PersonHasImage логическое.

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