ModelMetaData, Custom Class Attributes и неописуемый вопрос

То, что я хочу сделать, кажется таким простым.

В моем index.cshtml я хочу отобразить WizardStepAttribute значение

Итак, пользователь будет видеть вверху каждой страницы Шаг 1. Введите информацию о пользователе


I иметь ViewModel под названием WizardViewModel .Эта модель представления имеет свойство IList Steps

, каждый «шаг» реализует интерфейс IStepViewModel, который является пустым интерфейсом.

У меня есть представление с именем Index.cshtml. В этом представлении отображается EditorFor () текущий шаг.

У меня есть собственный ModelBinder, который привязывает представление к новому экземпляру конкретного класса, реализующего IStepViewModel на основе ] WizardViewModel.CurrentStepIndex свойство

Я создал настраиваемый атрибут WizardStepAttribute .

Каждый из моих классов Steps определяется следующим образом.

[WizardStepAttribute(Name="Enter User Information")] 
[Serializable]
public class Step1 : IStepViewModel
....

Однако у меня есть несколько проблем.

Мое представление строго типизировано для WizardViewModel , а не для каждого шага. Я не хочу создавать представление для каждой конкретной реализации IStepViewModel

. Я думал, что могу добавить свойство к интерфейсу, но тогда я должен явно реализовать его в каждом классе. (Так что это ничем не лучше)

Я думаю, что могу реализовать это с помощью отражения в интерфейсе, но вы не можете ссылаться на экземпляры в методах интерфейса.

6
задан Doug Chamberlain 27 July 2011 в 12:15
поделиться