2016-04-30 9 views
1

私のアプリケーションでASP.NET MVC5を使用しています。 私のビューのチェックボックス(同じ名前のチェックボックス)を使用して、従業員が知っている言語を表示したい。私のモデルを書く方法は、コントローラから渡してビューに表示するのですか?複数のチェックボックスの値をモデルに保存し、mvc4のビューとコントローラでレンダリングする方法は?

私はそれらバレスは、私はDB内のテーブルに保存する必要がある場合、それは大丈夫です列挙型で

public enum Language { 
    English=1, 
    Telugu=2, 
    Hindi=3, 
    Spanish=4 
} 

を格納しています。

+0

表示された列挙にチェックボックスを使用することは意味がありません。複数の言語を選択できるようにしたい場合は、enumに '[Flags]'属性を付ける必要があり、値は1,2,4,8でなければなりません(1,2,3 、4)、値はカンマで区切られた文字列として格納されます –

答えて

1

あなたがCheckBoxListForヘルパー使用することができます。

@Html.CheckBoxListFor(model => model.SelectedOptions, Model.AllOptions) 

をそして、あなたのモデルは、次のようになります。

public class MyModel { 

    // This property contains the available options 
    public SelectList AllOptions { get; set; } 

    // This property contains the selected options 
    public IEnumerable<string> SelectedOptions { get; set; } 

    public MyModel() { 
     AllOptions = new SelectList(
      new[] { "Option1", "Option2", "Option3" }); 

     SelectedOptions = new[] { "Option1" }; 
    } 
} 
あなたは、単にビューにモデルを渡すコントローラで

[HttpGet] 
[ActionName("Index")] 
public ActionResult Index() 
{ 
    var model = new MyModel(); 
    return View(model); 
} 

AllOptionsプロパティとSelectedOptionsプロパティは、必要に応じて変更できます(削除するだけです)。 MyModelのコンストラクタのコードをコントローラクラスに配置します)。

詳細については、Enum:CheckBoxList for Enum types MVC Razorの使用方法に関する注意事項があります。

+0

ありがとうございます。コントローラの部分も追加できますか? – aditya

+0

また、値と名前を持つ文字列のみを記述しているので、Enum型の例を表示できますか? – aditya

+0

私はそれを使用しました、ありがとう。だから、もし私がこのようなラジオボタンを持っていれば、このタイプの拡張なしで手動で行うべきですか? – aditya

関連する問題