2011-09-02 42 views
2

我是Mvc的新手,根據用戶的回答,我的圖像可以有正確或錯誤的圖像。如何使用MVC 3(剃刀)將動態源添加到圖像

這是我當前的代碼:

@if (Model.IsCorrect) 
    { 
     <img src="@Url.Content(@"~/Content/images/Default_Correct.png")" alt="correct" /> 
    } 
    else 
    { 
     <img src="@Url.Content(@"~/Content/images/Default_Wrong.png")" alt="wrong" /> 
    } 

這工作完全,但我認爲必須有一個更清潔/更好的辦法做這樣的事情。

回答

9

如果你像我一樣,恨污染與麪條代碼你的意見,你可以寫一個自定義的助手:

public static class ImageExtensions 
{ 
    public static IHtmlString MyImage(this HtmlHelper htmlHelper, bool isCorrect) 
    { 
     var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext); 
     var img = new TagBuilder("img"); 
     if (isCorrect) 
     { 
      img.Attributes["alt"] = "correct"; 
      img.Attributes["src"] = urlHelper.Content("~/Content/images/Default_Correct.png"); 
     } 
     else 
     { 
      img.Attributes["alt"] = "wrong"; 
      img.Attributes["src"] = urlHelper.Content("~/Content/images/Default_Wrong.png"); 
     } 
     return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing)); 
    } 
} 

,並在你看來簡單:

@Html.MyImage(Model.IsCorrect)