I have several model classes inherited from common base (e.g. Class1, Class2 inherits from CommonClass). I would like to write separate overloaded controller action which would have each of these model classes as parameter. For example:
[HttpPost]
public JsonResult MyAction(Class1 data)
{
// handle data here
}
[HttpPost]
public JsonResult MyAction(Class2 data)
{
// handle data here
}
Is it somehow possible to achieve that? When I try to simply write those action methods, MVC throws System.Reflection.AmbiguousMatchException.
I have also tried to write single action with base class as parameter and then cast data to specific class, but this gives me null.
[HttpPost]
public JsonResult MyAction(CommonClass data)
{
if(data.IsSomething)
{
var castedData = data as Class1;
// process casted data
}
else
{
var castedData = data as Class2;
// process casted data
}
}