可以在自定义模型绑定器中绑定另一种类型吗?

时间:2013-01-29 15:28:04

标签: c# asp.net-mvc model-binding

我有一个特定数据类型的自定义数据手册,一切都运行完美。但是我想知道是否可以更改绑定上下文并为另一个类型调用BindModel而不是那个绑定的类型。

举个例子:

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

1 个答案:

答案 0 :(得分:0)

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

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

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