2016-08-26 7 views
0

背景アクセスモデルを表示する方法/ ASP.NET MVCでのプログラムで閲覧中のviewmodelのフィールド

私のASP.NET MVCアプリケーションでは、ユーザーがカスタムレポートを作成し、表示するフィールド、フィールドなどの順序のようなものを選択することができますビューはそれらのカスタムレポート設定を読み込み、それに応じてモデルフィールドを表示することができます。

1)我々は人というモデルがあるとしましょう - ID、名前、年齢、住所、身長を。

2)カスタムレポート設定がCustomReportConfigというモデルにあるとします。年齢、名前、高さ(その順番)のみを表示します。あなたが気付いたよう

さて、どのようなビューに起こるべきことは

(そこと仮定すると、人とCustomReportConfigの両方が含まれているViewModelに存在する)のような
foreach(string fieldName in @model.ViewModel.CustomReportConfig) 
    @model.ViewModel.Person.**fieldName** 

何かである、上記のコードでのフィールド名の部分が文字列変数ですビューでは、これは静的に入力する必要があります。

質問

は、上記のコードで@model.Person.fieldNamefieldName一部に変数を使用することが可能ですか?

注:これは、各フィールドやリフレクションの条件が異なる場合や、ViewModelなどで汎用のDataTableタイプのオブジェクトを作成する場合に、これを行うことができると私は理解していますが、 @ model.Person.fieldNameのfieldNameはプログラムによって設定します。

答えて

0

おそらくフィールド/プロパティ名のリストを保持し、プロパティを取得するためにリフレクションを使用しますか?

おそらくそれを行うためのより良い方法は、それぞれがいくつかのインターフェイスを実装しているオブジェクトのリストを保持し、次にリストをループすることです。

foreach (IMyCustomInterface obj in @model.ViewModel.CollectionOfCustomReportConfigs) 
    @obj.ToRenderedString() 
関連する問題