Динамически составлять ASP MVC представление на основе контекста - PullRequest
1 голос
/ 02 января 2011

У меня есть несколько представлений, которые состоят из нескольких частичных представлений, основанных на контексте.

Например, у нас есть представление Project, которое показывает все детали проекта, включая скалярные значения, имя и т. Д.,а также все назначенные сотрудники, задачи и / или клиенты.

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

Каков наилучший способ составить главное представление Projects?Я не хочу иметь логику, чтобы проверить проект в представлении.Есть ли способ составить представление в коде путем программной визуализации соответствующих частичек и игнорирования остальных?

Иначе есть ли другие идеи, как это сделать обслуживаемым способом?Конечно, я мог бы просто визуализировать партиалы, используя операторы if, чтобы проверить, применимы ли они, но таким образом представление содержит ОЧЕНЬ важную логику.В другой ситуации мы хотим использовать этот метод для отображения содержимого в зависимости от типа подписки, которую имеет пользователь.

Спасибо!

1 Ответ

1 голос
/ 03 января 2011

Я бы придерживался подхода if. Чтобы избежать кодирования важной логики в представлении, определите свойства в вашей модели представления и позвольте контроллеру установить значение так, чтобы внутри представления было только:

<% if (Model.HasDetails) { %>
    <% Html.RenderPartial("details"); %>
<% } %>

Или, если вы работаете с шаблонами отображения / редактирования, вы можете просто:

<%= Html.DisplayFor(x => x.Details) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...