簡體   English   中英

顯示值轉換器,用於ASP.MVC

[英]Display value converter for ASP.MVC

我有一些包含國家/地區ISO代碼的模型。 我想用實際的國家名稱顯示這些,而不僅僅是ISO值。

因此,從一般意義上講,我在模型中有鍵,在字典中有這些鍵的定義,我想在UI中顯示定義。

在最近主要在WPF中工作之后,我將創建一個轉換器,每當我要轉換值(甚至雙向)時,都可以在UI綁定中引用該轉換器。 如果ASP.MVC中有類似的即用型概念,那將是理想的選擇。

或者,我可以將國家/地區名稱作為屬性添加到模型中,但是感覺很笨拙。

我當然可以推出自己的自定義轉換器解決方案,但是更願意遵循最佳實踐,因此非常感謝任何指導。

HtmlHelper可能是解決您問題的理想解決方案。

首先,您需要像這樣聲明一個HtmlHepler:

public static class CountryHTMLHelpers
 {
      //Initialize your dictionary here
      public static Dictionary<string, string> CountryDictionary;          

      public static IHtmlString ISOToCountry(this HtmlHelper helper, string iso)
      {
          string countryName = CountryDictionary[iso];
          return new HtmlString(countryName);
      }

      public static IHtmlString CountryToISO(this HtmlHelper helper, string country)
      {
          string iso = CountryDictionary.FirstOrDefault(x => x.Value == country).Key;
          return new HtmlString(iso);
      }
}

要在您的視圖中使用這些助手:

@Html.ISOToCountry(Model.ISO) //Print the country
@Html.CountryToISO("England") //Print the ISO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM