Search code examples
asp.net-mvc-3actionmethod-signaturedefaultmodelbindercustom-model-binder

Choosing object binder in action signature


I have a custom model binder to get data from session, but I also would like to use the default binder from time to time.

Is it possible to choose model binder in action signature instead of using UpdateModel?

Example

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

Thanks


Solution

  • You could use the [ModelBinder] attribute:

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

    Obviously you should have not assigned globally your custom model binder to the Cart class in your Application_Start, otherwise it will automatically apply to all instances of Cart appearing as action parameters.