2012-02-27 3 views
1

Я использую mvc3 бритвы двигательMVC3 Razor двигатель

с точки зрения я называю функцией с 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; 
      } 

если ByteArray, пустая функция возврат null

как узнать из вид какой возвращенный функция?

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

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

ответ

1
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

Что за то, что вы хотите сделать?

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

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

+0

видеть мое отредактированное сообщение – Irakli

Смежные вопросы