У меня следующая проблема. У меня есть класс в модели структуры лица, который имеет свойства, например ::10000
class Company{
public string Name {get; set};
public string Address {get; set};
public string Email{get; set};
public string WebSite {get; set};
}
У меня есть конфигурация в базе данных, которая определяет, должно ли отображаться какое-либо поле или нет, например:
- Имя: показать
- Адрес: показать
- E-mail: скрыть
- Сайт: скрыть
Это динамично, и все поля имеют имена.
Когда я отображаю объект в поле зрения. Было бы неплохо как-то преобразовать отдельный объект в некоторый словарь, где ключом будет имя свойства, а значением будет значение свойства, поэтому я могу проверить для каждого поля по имени, должно ли оно отображаться или нет (возможно, в некотором цикле for-each) например:
CompanyDetails.cshtml
<h2>Company Details</h2>
@foreach(var property in modelDictionary.Keys){
@if(IsVisible(property))
@Html.Raw( modelDictionary[property] )
}
Как лучше всего преобразовать отдельный объект из модели структуры сущностей в словарь свойств? Должен ли я преобразовать его из объекта в словарь в действии контроллера или как-то использовать метаданные модели в представлении?
Я могу использовать отражение в классе Company и найти все свойства в классе, чтобы я мог заполнить словарь, но это выглядит как слишком старомодное решение, так что я хочу поболтать, есть ли лучший способ сделать это?
Спасибо