2012-03-22 10 views
1

MVC2アプリケーションで列挙型を使用してラジオボタンをレンダリングする必要があります。MVC2の列挙型からラジオボタンを取得

誰でも助けてくれますか?

あなたの知恵を共有してくれてありがとう。

+0

@linkerro:私はMVCの専門家ではないですが、RadioButtonForを使用しようとしていたが、それは今私が列挙型を使用してラジオボタンを描画するために自分自身の拡張機能を作成しようとしています、単一の値のみで動作します。 – IrfanRaza

答えて

5

あなたはによりgetNames機能を使用する必要があります。

<% foreach (string name in Enum.GetNames(typeof(EnumType))) 
      { 
       %> 
       <input type="radio" value="<%=name %>" name="instanceName"/> 
       <% 

      } %> 

、サーバー側であなたが戻って列挙型に文字列を解析するEnum.Parse機能を使用することができます。

UPDATE

ジェイスは、デフォルトのモデルバインダーがあなたのために列挙型に文字列をマッピングすることをコメントすることは正しいです。

+0

お返事ありがとうございました。 – IrfanRaza

+2

MVCのデフォルトのモデルバインディングでは、値を列挙して解析できます。サーバー上でEnum.Parseを呼び出す必要はありません。 –

1

あなたは反射を使用したいと思います。列挙のすべてのメンバーを取得し、入力要素を作成しますが、次のコードセグメントでは、リフレクションを使用して列挙内のすべての要素をリストすることが必要です。

public enum JuiceTypes 
    { 
     Apple, 
     Orange, 
     Pineapple, 
     Peach, 
     HoneyTea, 
     Tomato 
    } 

     string[] juiceTypes = Enum.GetNames(typeof(JuiceTypes)); 
     foreach (string juice in juiceTypes) 
     { 
      Console.WriteLine(juice); 
      //in MVC you need to use Response.WriteLine("<input type=\"radio\" value=\"+juice+"\"/>"); 
     }