2015-04-06 3 views
1

У меня есть класс, который конвертирует между физическими единицами на основе коллекции enum. В коде вы можете переключить блок инженера на перечисление, и объект вычислит инженерное значение на основе внутреннего (SI) блока.C# Modelbinding пользовательский объект

Теперь я создал editortemplate для MVC, чтобы ввести значение и его инженерный блок.

В настоящее время моя проблема заключается в том, что ModelBinder присваивает свойства неправильным образом, устройство должно быть назначено до значения, иначе внутреннее значение будет вычисляться неправильно. Внутреннее значение рассчитывается сразу же после присвоения инженерного значения.

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

-Edit- Я также могу создавать схемы просмотра для каждого из «умных» объектов и переводить их в контроллер, но не уверен, что это приемлемо, это означало бы, что я должен создавать фиктивные объекты для каждой физической единицы, но, очевидно, было бы отделить мой взгляд правильно с моей рамок/логики

с наилучшими пожеланиями, Martin

ответ

0

Это что-то дизайнерского вопрос.

Я бы рекомендовал использовать отдельную модель представления, которая не зависит от назначения значений в определенном порядке и последующего сопоставления значений с классом, который у вас есть на контроллере. Логика предварительного контроллера (фильтры действий и привязки к образцам) выходит за пределы рабочего потока на основе контроллера, что является решением, которое не следует делать легкомысленно.

+0

Я поеду с дополнительными режимами просмотра, а затем просто войду в valuse ... вроде взял мой editortemplate ни с чем :( – Martin

+0

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

Смежные вопросы