Выбор связующего объекта в сигнатуре действия
У меня есть пользовательское связыватель модели для получения данных из сеанса, но я также хотел бы время от времени использовать связыватель по умолчанию.
Можно ли выбрать подшивку модели в сигнатуре действия вместо использования 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)