MVC3 - условный рендеринг представлений - PullRequest
0 голосов
/ 02 марта 2011

У меня есть условная бизнес-логика, которая определяет, должно ли свойство из модели отображаться в представлении.в соответствии с лучшими практиками, где было бы место для его реализации?

Реализация этой логики на уровне представления не кажется мне подходящей.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 марта 2011

В самом деле? Я бы подумал, что это будет хорошо в представлении, если вы передаете логическое значение, указывающее, должно ли оно отображаться как часть ViewModel. Представление не должно запрашивать внешний ресурс, чтобы определить, следует ли отображать определенные элементы пользовательского интерфейса, но если все, что ему нужно для определения того, что следует отображать, находится во ViewModel, что не так с простым оператором if {}? В качестве альтернативы, если условное свойство отображения является общим, вы можете создать для него пользовательский DisplayTemplate или EditorTemplate и реализовать там логику.

Таким образом, ваша ViewModel должна обернуть все, что вы хотите отправить в представление. в вашем случае это звучит так, как будто вы должны обернуть вашу DomainModel и некоторый словарь или коллекцию KeyValuePair, детализирующую, должно ли каждое свойство отображаться как логическое значение. Это то, что я бы сделал в любом случае.

0 голосов
/ 02 марта 2011

ИМО, это принадлежит модели. Я бы поместил эту бизнес-логику в свойство IsRequiredYourProperyName в модели.

...