2017-02-21 99 views
1

我從事MVC 5項目我是MVC技術的新手。在HTML幫助程序的幫助下創建img標記

我需要創建img元素和文字根據我的文化價值,這裏的代碼鑑於:

@{ 
    var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant(); 
} 

的文化價值保持當前的文化。

這裏的HTML表示通過顯示標誌和文本電流培養:

<a class="dropdown-toggle no-text-underline" data-toggle="dropdown" href="#"><img class="flag-lang" src="/assets/images/flags/no.png" width="16" height="11" alt="lang" />Norsk</a> 

當用戶選擇另一個語言回發occures和培養值變化accroding到用戶selection.After回發發生上述的HTML應顯示標誌和文本accroding用戶選擇。

例如,如果用戶選擇的是英語的文化元素是「恩」和HTML是:

<a class="dropdown-toggle no-text-underline" data-toggle="dropdown" href="#"><img class="flag-lang" src="/assets/images/flags/us.png" width="16" height="11" alt="lang" />English</a> 

我想實現它,我需要生成剃刀HTML輔助的幫助img標籤。

所以我的問題是如何使用html.helper生成img標籤?

+0

一個'HtmlHelper'是沒有必要的。你可以使用'@culture'例如 –

+0

@StephenMuecke我需要顯示不僅稅收,而且還有一個img元素,其src屬性爲特定標誌 – Michael

+0

我假設你顯示的html是錯誤的('id'屬性沒有任何意義我假設這應該是'src'屬性?)。你只需要將圖像的路徑傳遞給模型(查看視圖模型屬性或'ViewBag'屬性=例如'src =「@ View.ImagePath」' –

回答

2

你可以做這樣的事情:

  1. 添加一些靜態類HTML輔助
  2. 參考它CSHTML文件,以便它是可見
public static MvcHtmlString DisplayFlag(this HtmlHelper html) 
    { 
     var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant(); 
     var imgSrc = string.Format("/assets/images/flags/{0}.png", culture); 
     TagBuilder tag = new TagBuilder("img"); 
     tag.AddCssClass("flag-lang"); 
     tag.MergeAttribute("src", imgSrc); 
     return MvcHtmlString.Create(tag.ToString(TagRenderMode.SelfClosing)); 
    } 
  1. 和CSHTML文件中使用這樣的
@Html.DisplayFlag() 

沒有測試它,但它應該工作