次の問題があります。単一のエンティティフレームワークオブジェクトを辞書に変換する
- 名:表示さ 私はいくつかのフィールドは、例えば示さするかしないかどうかを定義するデータベース内の設定を持っている
class Company{
public string Name {get; set};
public string Address {get; set};
public string Email{get; set};
public string WebSite {get; set};
}
:私は、性質などを持つエンティティフレームワークモデルのクラスを持っています
これは動的で、すべてのフィールドは名前で参照されます。
オブジェクトを表示するとき。何らかの形で、あるオブジェクトを何らかの辞書に変換して、キーがプロパティ名になり、値がプロパティ値になるように変換するとよいでしょう。そうすれば、表示する必要があるかどうか(すべてのフィールドで、例えば:
CompanyDetails.cshtml
<h2>Company Details</h2>
@foreach(var property in modelDictionary.Keys){
@if(IsVisible(property))
@Html.Raw(modelDictionary[property])
}
プロパティの辞書に、エンティティフレームワークモデルから単一のオブジェクトを変換するための最良の方法は何ですか?コントローラーアクションでそれをオブジェクトから辞書に変換するか、またはモデルのメタデータを何らかの形でビューで使用する必要がありますか?
私はCompanyクラスでリフレクションを使用してクラス内のすべてのプロパティを見つけることができるので、辞書に入れることができますが、これは古すぎる学校のソリューションのように見えます。
おかげ
私は」あなたが達成しようとしていることとその理由を混乱させます。ビューに特定のフィールドを表示しないでください。または、表示可能かどうかを判断する属性をモデルフィールドに追加します(しかし、私の最初の提案はより簡単/より理にかなっています)。 – JasCav
次のような条件を繰り返すことを避けたい:@if(IsVisible( "Name"))