1

我有一个针对特定数据类型的自定义数据绑定器,并且一切正常。但是我想知道是否可以更改绑定上下文并为另一种类型调用 BindModel 而不是被绑定的类型。

例如:

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

1 回答 1

0

是的,有可能,只需使用您的配置创建另一个绑定上下文:

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

然后你调用base.BindModel上面的上下文。

于 2013-01-29T15:30:23.270 回答