设置自定义绑定器将在vNext应用程序中应用的对象类型?

时间:2014-12-12 20:32:58

标签: asp.net-core asp.net-core-mvc

如何设置要将活页夹应用于的对象类型,例如:

ModelBinders.Binders.Add(typeof(Person), new PersonModelBinder());
在vNext应用程序中?

我可以看到ModelBinders.Add有3个重载,

1) IModelBinder
2) ModelBinderDescriptor
3) Type

但我不确定如何将旧代码翻译成这个新代码?基本上我想要这样的事情:

    services.AddMvc().Configure<MvcOptions>(options =>
    {
        options.ModelBinders.Add(typeof(Person), new PersonModelBinder()));
    });

谢谢!顺便说一下,I have looked here as well

1 个答案:

答案 0 :(得分:1)

这似乎确实是MVC 6中的一个缺口。现在你必须直接在你的活页夹中编写代码。

 public Task<bool> BindModelAsync(ModelBindingContext bindingContext)
 {      
    if (bindingContext.ModelType == typeof(Person))
    {
        var value = // get the value
        bindingContext.Model = value;

        return Task.FromResult(true);
    }

    return Task.FromResult(false);
 }

Herehere是框架中用于实现[FromHeader]的类似代码

Here是问题跟踪的链接,可以为MVC 5带来类似的重载。