2014-10-18 2 views
0

Я пытаюсь создать инлайн, если с бритвой имеет следующим образом:Как использовать встроенный, если с бритвой?

@(Model.ImageId == null ? "---" : @<text><img src='@(Url.Action(MVC.File.Get(Model.ImageId)))'/></text>) 

Я постоянно получаю ошибки:

Type of conditional expression cannot be determined because there is no implicit conversion between 'string' and 'lambda expression' 

cannot convert from 'System.Web.Mvc.ActionResult' to 'string' 

Как я могу решить эту проблему с помощью инлайн если

ответ

0

Бритва делает не иметь хороший синтаксис для вывода того, что вы описали. Можно использовать то, что определено в this answer.

Если бы это был мой код, который я хотел бы использовать тройной оператор, я бы, вероятно, создать метод Бритвы помощника и использовать его таким образом:

@Html.Raw(Model.ImageId == null ? "---" : OutputImageName(Model.ImageId).ToHtmlString()) 

@helper OutputImageName(string imageId /* change type to your actual type */) 
{ 
    <img src='@(Url.Action(MVC.File.Get(imageId)))'/> 
} 
0

Попробуйте этот код:

@(Model.ImageId == null ? "---" : string.Format(@"<text><img src='{0}'/></text>", Url.Action(MVC.File.Get(Model.ImageId)))) 

Надеется, что это помогает.

0
<text>@(Model.ImageId == null ? "" : string.Format("<img src='{0}'/>", Url.Action(MVC.File.Get(Model.ImageId))))</text> 
+0

Хотя это может решить вопрос, этот пост был бы намного более ценным, если бы вы предоставили дополнительные пояснения. –