Инъекция конструктора экземпляра модели представления, используемого в качестве параметра метода Action

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

Одно из потенциальных решений, о котором я спрашиваю в этом вопросе, - как заставить фреймворк MVC инстанцировать модель представления с помощью инъекции конструктора, что обеспечило бы конструктору модели представления реализацию какого-то объекта доступа к данным (например, хранилища), который можно использовать для получения опций, когда они запрашиваются представлением (например. в вспомогательном методе "DropDownListFor") ?

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

Если вы ищете альтернативное обсуждение того, как заполнить список select, например, с помощью "Dependecy Lookup" вместо "Dependecy Injection", вы можете ознакомиться со следующим обсуждением: Лучший способ заполнения SelectList для ViewModel на GET/POST Лучший способ заполнить SelectList для ViewModel на GET/POST

Несколько дней назад я написал следующий последующий вопрос в этой теме о "Dependecy Injection", который я сейчас ищу в этой теме: https://stackoverflow.com/a/8674525/310457 (где приведен пример кода, связанный с проблемой, решение которой я ищу)

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

7
задан Community 23 May 2017 в 12:17
поделиться