2012-02-04 5 views
0

私は、@モデルMyModelを剃刀のように見せています。ラジオボタンリストの辞書にあるテキストを表示するにはどうすればよいですか?

[Required(ErrorMessage = "Please tell us how you heard of us.")] 
     [Display(Name = "How did you hear about us?")] 
     public ReferralList Referral { get; set; } 
     public enum ReferralList 
     { 
      Referral_Google, 
      Referral_OtherSearch, 
      Referral_Website, 
      Referral_Friend, 
      Referral_Television, 
      Referral_Radio, 
      Referral_Other 
     } 
     public class ReferralDictionary 
     { 
      public static readonly Dictionary<ReferralList, string> referralDictionary = new Dictionary<ReferralList, string> 
      { 
       { ReferralList.Referral_Google, "Google" }, 
       { ReferralList.Referral_OtherSearch, "Bing/Yahoo/AOL" }, 
       { ReferralList.Referral_Website, "Website1.com/Website2.com" }, 
       { ReferralList.Referral_Friend, "Friend/Relative/Co-worker" }, 
       { ReferralList.Referral_Television, "Television" }, 
       { ReferralList.Referral_Radio, "Radio" }, 
       { ReferralList.Referral_Other, "Other" }, 
      }; 
      static string ConvertReferral(ReferralList referrallist) 
      { 
       string name; 
       return (referralDictionary.TryGetValue(referrallist, out name)) 
        ? name : referrallist.ToString(); 
      } 

      static void Main() 
      { 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_Google)); 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_OtherSearch)); 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_Website)); 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_Friend)); 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_Television)); 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_Radio)); 
       Console.WriteLine(ConvertReferral(ReferralList.Referral_Other)); 
      } 
     } 
:私は

@Html.LabelFor(m => m.FirstName, new { @class = "mylabelstyle", title = "Enter first name." }) 

を使用することができることを

[Display(Name = "First Name:")] 

プロパティでmymodelという中で定義された姓の文字列を、持っている場合、私は次のようなコードでラジオボタンのリストを使用しています知っています

私は確認ページで次のようなことをすることができます:

<div class="display-label"> 
    Referred From: 
</div> 
<div class="display-field"> 
    @Html.Raw(MyNamespace.Models.MyModel.ReferralDictionary.referralDictionary[Model.Referral]) 
</div> 

たとえば、選択肢(「Google」など)が出力されます。

上記のコードは動作しているので、私が問題にしていないものを誤って入力したとします。

私の問題は私のかみそりビューで、私はこれをやっているということです。

<td class="radio_cell"> 
    @Html.LabelFor(m => m.Referral, new { @class = "mylabelstyle", title = "How did you learn about our services?." }) 
</td> 
<td> 
    <span class="radio_validation">@Html.ValidationMessageFor(m => m.Referral)</span> 
    <div class="radio"> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_Google") 
      Google 
     </p> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_OtherSearch") 
      Bing/Yahoo/AOL 
     </p> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_Website") 
      Website1.com/Website2.com 
     </p> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_Friend") 
      Friend/Relative/Co-worker 
     </p> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_Television") 
      Television 
     </p> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_Radio") 
      Radio 
     </p> 
     <p> 
      @Html.RadioButtonFor(m => m.Referral, "Referral_Other") 
      Other 
     </p> 
    </div> 
</td> 

あなたが気付いた場合、私はモデルクラス内のテキストとして、例えば、「グーグル」を入れて、そして出て書いています"Google"をもう一度見てください。

これは大したことではない(1つのラジオボタンリストについても)。しかし、私は多くのラジオボタンリストを使用しています。私の選択肢の多くは短い文章です。ですから、ビューとモデルクラスのテキストを「同期」に保つことは、私が変更を加えると悪夢になり始めます。

@ Html.Rawを使用して、個々の辞書項目を正常に出力しようとしました。だから私は立ち往生している。

アイデア?

答えて

関連する問題