Search code examples
c#asp.net-mvc-3defaultmodelbinderasp.net-mvc-viewmodel

Decoration on ViewModel property to use a different name for binding


On MVC3, is there a way to decorate a ViewModel property in order to get the DefaultModelBinder to use a different name for it in the request?

For example, suppose you have the following view model:

public class SomeModel 
{
  public string Direction {get;set;}
}

But the parameter coming in is Dir from an external source (such as some third-party component, for example).

I know a custom model binder could handle that, but I assume there must be a way to decorate the property, similar to the way action parameters can use Bind(Prefix="...") in order to define that mapping.


Solution

  • OK, so after more research looking at similar questions and seeing the feedback here as well, it seems that the answer to my question is basically "NO".

    There is no out-of-the-box way, so either custom binders must be used or or the properties should be renamed.

    A similar question with a more detailed answer can be found here: How to bind URL parameters to model properties with different names