2013-01-29 4 views
1

У меня есть настраиваемый блок данных для определенного типа данных, и все работает безупречно. Однако я хочу знать, можно ли изменить контекст привязки и вызвать BindModel для другого типа, а не связанного.Можно ли связать другой тип внутри встроенного связующего?

Для примера:

public class CustomModelBinder : DefaultModelBinder 
{ 
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    { 
     var otherTypeObject = BindModel(controllerContext, [other-binding-context]); 
     return wizard; 
    } 

ответ

0

Да, это возможно, просто создать еще один связывающий контекст с конфигурацией:

var otherBindingContext = new ModelBindingContext { 
    ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => [object_instance], [object_type]), 
    ModelState = bindingContext.ModelState, 
    PropertyFilter = bindingContext.PropertyFilter, 
    ValueProvider = bindingContext.ValueProvider 
}; 

И тогда вы называете base.BindModel с использованием контекста выше.

+0

Звучит неплохо, я попробую и дам вам знать. спасибо –

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