Выбор связующего объекта в сигнатуре действия

У меня есть пользовательское связыватель модели для получения данных из сеанса, но я также хотел бы время от времени использовать связыватель по умолчанию.

Можно ли выбрать подшивку модели в сигнатуре действия вместо использования UpdateModel?

пример

public ViewResult MyAction(Cart useSessionBinder, Cart useFormData)
{}

Спасибо

2 ответа

Решение

Вы могли бы использовать [ModelBinder] атрибут:

public ActionResult MyAction(
    [ModelBinder(typeof(MyCustomModelBinder))] Cart useSessionBinder, 
    Cart useFormData
)
{
    ...
}

Очевидно, что вы не должны были глобально назначать свой пользовательский связыватель модели Cart класс в вашем Application_Start в противном случае он будет автоматически применяться ко всем экземплярам Cart появляются как параметры действия.

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

public ActionResult MyAction(
       [ModelBinder(typeof(DefaultModelBinder))]  Cart useFormData)
Другие вопросы по тегам