ASP.NET MVC: возможно ли иметь несколько шаблонов отображения для типа? - PullRequest
3 голосов
/ 02 ноября 2010

У меня есть два представления, которые показывают примерно одинаковые данные, но одно по клиенту, а другое по проекту. Обычно это было бы здорово, так как один и тот же шаблон отображения повторно используется в обоих представлениях. Однако мне нужно, чтобы эти элементы отображались по-разному, когда они перечислены клиентом и проектом. Тем не менее, они уже имеют определенные шаблоны отображения. Есть ли способ для меня иметь два шаблона отображения для одного типа?

редактировать

Хорошо, я забыл одну важную деталь, которая усложняет эту задачу. Хотя существуют отдельные модели (модели представлений), которые содержат элементы для каждого представления, сами элементы имеют смешанные типы (общий базовый класс). Шаблоны отображения предназначены для каждого из типов элементов, которые могут быть в списке, поэтому я не могу использовать атрибут в модели.

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

1 Ответ

6 голосов
/ 02 ноября 2010

У каждого представления есть свой строго типизированный вид?Если это так, создайте два разных шаблона, а затем в каждой модели свяжите их с аннотацией [UIHint].

Пример:

public class ClientModel
{
     [UIHint("ClientDisplay")]
     public SharedDataModel sharedData { get; set;}
     //Other fields below
}

Затем сделайте то же самое для модели проекта.Если вы в настоящее время используете одну и ту же модель между двумя, вы можете обернуть их в отдельные новые модели и сделать то же самое.

Из того, что вы спросили, я считаю, что это то, что вы пытаетесь сделать,У меня была небольшая проблема после вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...