que tiene un tipo:ASP.NET MVC - Mezcla de encargo y modelo predeterminado Encuadernación
public class IssueForm
{
Order Order {get; set;}
Item Item {get; set;}
Range Range {get; set;}
}
he creado una carpeta de modelo personalizado debido a los requisitos de orden y de artículos, pero todavía Rango podrían utilizar el modelo predeterminado Binder.
¿Hay alguna manera desde dentro de mi carpeta de modelo personalizado para llamar al encuadernador de modelo predeterminado para devolver un objeto de rango? Creo que solo tengo que configurar ModelBindingContext correctamente, pero no sé cómo.
EDITAR
Mirando el primer comentario y respuesta - Parece que hereda de la carpeta por defecto del modelo podría ser útil.
Para añadir más detalles de mi configuración hasta ahora tengo:
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
}
}
Esto podría ser una manera estúpida de hacerlo ... este es mi primer aglutinante modelo. Solo señalando mi implementación actual.
editar # 2
para que las respuestas para anular BindProperty funcionará si puedo enganchar en un método como "estoy todo hecho vinculante" y llame al método de fábrica con las propiedades.
Creo que realmente debería mirar la implementación DefaultModelBinder y dejar de ser estúpido.
No estoy seguro de si es la solución más elegante, pero ¿podría derivar su carpeta de modelo personalizado de DefaultModelBinder en lugar de implementar IModelBinder? Luego, cuando anule BindModel, pase la responsabilidad a DefaultModelBinder donde corresponda. De lo contrario, use un enlace personalizado. –
Yah, veo que algunos archivos de carpetas modelo se salgan de IModelBinder y DefaultModelBinder. Supongo que DefaultModelBinder tiene algunos métodos adicionales que supongo que llama desde el método BindModel, para que pueda enfocar más sus necesidades. – anonymous
Solo confirma mi decisión de ignorar manualmente el procesamiento y la validación de entrada y código de ModelBinder. Ahora lo tengo consistente, transparente y ajustable a las necesidades futuras presentes e imaginables. – User