2014-12-12 6 views
1

Как бы вы установить тип объекта, который вы хотите, связующей обратиться например:Настройка типа объекта, к которому будет применяться пользовательское связующее, в приложении vNext?

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())); 
    }); 

Спасибо! btw, I have looked here as well.

ответ

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); 
} 

Here и here является аналогичным кодом, используемым в рамках для реализации [FromHeader]

Here найти ссылку на вопрос отслеживания вернуть подобную перегрузку MVC 5.

+1

Я пытался избежать это. Спасибо за ссылку на отслеживание проблем, хотя я буду следить за ней! –