2012-03-05 13 views
0

.NET MVC Webアプリケーションで少し遊んで、ViewModelsとデータアノテーションについて質問があります。私が使用して私のViewModel表示.NET MVCレンダリングビュー(カスタムデータアノテーションあり)

public class MyViewModel 
{ 
    [DisplayName("First Name")] 
    public string FirstInfoName { get; set; } 

    [DisplayName("First Information")] 
    public string FirstInfo { get; set; } 

    [DisplayName("Second Name")] 
    public string SecondInfoName { get; set; } 

    [DisplayName("Second Information")] 
    public string SecondInfo { get; set; } 

    [DisplayName("Third Name")] 
    public string ThirdInfoName { get; set; } 

    [DisplayName("Third Information")] 
    public string ThirdInfo { get; set; } 
} 

私が編集を作成する場合:

は私がViewModelにを持っていると言うことができます。これは素晴らしい作品

@Html.EditorForModel() 

を、MVCは私のためのテキストボックスをレンダリングします。しかし、ビュー内でタブをレンダリングしたいとしましょう。そのため、ViewModelのプロパティはデータアノテーションに応じてグループ化されます。 例:

public class MyViewModel 
{ 
    [Tab(1)] 
    [DisplayName("First Name")] 
    public string FirstInfoName { get; set; } 

    [Tab(1)] 
    [DisplayName("First Information")] 
    public string FirstInfo { get; set; } 

    [Tab(2)] 
    [DisplayName("Second Name")] 
    public string SecondInfoName { get; set; } 

    [Tab(2)] 
    [DisplayName("Second Information")] 
    public string SecondInfo { get; set; } 

    [Tab(3)] 
    [DisplayName("Third Name")] 
    public string ThirdInfoName { get; set; } 

    [Tab(3)] 
    [DisplayName("Third Information")] 
    public string ThirdInfo { get; set; } 
} 

このようなことは可能ですか?たぶんテンプレートを使用していますか?

答えて

0

私はあなたがこれをすることができないとは言わないが、確かに簡単な解決策にはなりません。その理由は、属性はプロパティごとに評価されます。タブは通常、グループとともに表示され、同じタイプの複数の属性に基づいてグループを含めるようにHTMLを変更する良い方法はありません。

+0

私は解決策は、各編集ページごとに個別のビューを作成することだと思います。私が望んでいたのは、すべての編集ページに対して1つの一般的な編集ビューを持つことでした。 – user1249974

+0

さて、あなたは自分のタイプのプロパティをグループ化し、そのタイプのEditorTemplateを作成することができます。 –

関連する問題