я типа:ASP.NET MVC - Смешивание на заказ и по умолчанию модель привязки
public class IssueForm
{
Order Order {get; set;}
Item Item {get; set;}
Range Range {get; set;}
}
Я создал пользовательские модели связующего из-за требований по заказу и позиции, но диапазон по-прежнему можно использовать по умолчанию Model Binder.
Есть ли способ из моего пользовательского связующего объекта вызвать функцию связывания по умолчанию для возврата объекта Range? Думаю, мне просто нужно правильно настроить ModelBindingContext, но я не знаю, как это сделать.
EDIT
Глядя на первый комментарий и ответ - похоже, унаследовав от модели связующего по умолчанию может быть полезным.
Чтобы добавить больше подробностей для моей установки до сих пор у меня есть:
public IssueFormModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
Order = //code to pull the OrderNumber from the context and create an Order
Item = //code to pull the ItemNumber from the context and create an Item
IssueForm form = IssueFormFactory.Create(Order, Item);
form.Range = // ** I'd like to replace my code with a call to the default binder **
return form
}
}
Это может быть глупый способ сделать это ... это моя первая модель связующего. Просто указывая на мою текущую реализацию.
EDIT # 2
Так ответы переопределить BindProperty будет работать, если я могу подключить в как метод «Я все сделано связывания» и вызвать метод Factory со свойствами.
Я думаю, мне действительно стоит взглянуть на реализацию DefaultModelBinder и перестать быть глупым.
Я не уверен, что это самое изящное решение, но вы могли бы получить свое собственное связующее устройство для модели от DefaultModelBinder вместо того, чтобы внедрять IModelBinder? Затем, когда вы переопределите BindModel, передайте ответственность до DefaultModelBinder, где это необходимо. В противном случае используйте пользовательскую привязку. –
Да, я вижу, что некоторые связующие устройства уходят с IModelBinder и DefaultModelBinder. Я думаю, у DefaultModelBinder есть несколько дополнительных методов, которые я предполагаю, что он вызывает метод BindModel, чтобы вы могли больше сосредоточить свои потребности? – anonymous
Это только подтверждает мое решение игнорировать обработку и проверку ввода кода ModelBinder и вручную. Теперь у меня есть он последовательный, прозрачный и настраиваемый, чтобы представить и вообразить будущие потребности. – User