По: MVC3 Model binding pagedlist to ViewModel with custom EditorTemplate and Partial ViewMVC3 Связывание пользовательской коллекции
см.выше вопрос для фрагментов кода
Проблема, которую я имею в настоящее время окружает связывании пользовательской коллекции IPagedList. Связующее устройство модели пытается привязать значения к свойству ViewModel, но не может создать экземпляр интерфейса (никаких сюрпризов нет).
Итак, как я могу привязать значения к моей модели представления, создавая экземпляр конкретного класса PagedList, когда значения привязаны? Как я понимаю, IEnumerable binder делает это для List или аналогичного производного, так как я могу это сделать для своего пользовательского класса/интерфейса?
Нужно ли мне для этого накладывать заказную модель? Если так, то любая информация или советы на этом коде замечательны!
Любая помощь очень благодарна.
Update:
Изменение ViewModel включить переопределен конструктор по умолчанию, который инициализирует интерфейс, как так:
public class RequestCreateViewModel : ViewModelBase
{
public IPagedList<CreateRequestModel> PagedList { get; set; }
public RequestCreateVieWModel()
{
PagedList = new PagedList<RequestCreateModel>(new List<RequestCreateModel>(), new PagingOptions());
}
.. появляется, чтобы модель Связыватель по умолчанию работать в соответствии с моим комментарием. Но это не похоже на отличное решение, главным образом потому, что им нужно вывести новые параметры объекта для объекта PagedList каждый раз при создании ViewModel. Неужели я беспокоюсь?
Я бы заглянул в пользовательские привязки моделей. Сначала запугивать, но не так уж плохо. Вы можете многое сделать с этой функцией. Имейте в виду, что есть два разных способа сделать это. Наследование с DefaultModelBinder и создание собственного связующего, которое просто реализует IModelBinder. –
Кто-нибудь получил больше информации о том, что сказал Джефф? Спасибо – M05Pr1mty
Добавив конструктор к объекту ViewModel с инициализацией для интерфейса, связующее по умолчанию выполняет свою работу и связывается с правильным наименованием, конечно. Вдохновение пришло из: http://stackoverflow.com/questions/5749775/implementing-asp-net-mvc-3-interface-model-binding-with-viewmodel Но это не позволяет создать настраиваемое связующее устройство для этого ... Так что мой вопрос по-прежнему стоит, хорошая ли это идея или нет? – M05Pr1mty