I defined two controller with same controller name in different namespaces. And got an exception. How to uer parameter "dataTokens" to define namespace of controller like mvc-4?
Exception below:
AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:
Alice.Controllers.TestController.Index
Alice.Controllers.Api.TestController.Index
Microsoft.AspNet.Mvc.Infrastructure.DefaultActionSelector.SelectAsync(RouteContext context)
Controllers/Api/TestController.cs :
namespace Alice.Controllers.Api
{
//[Route("api/[controller]")]
public class TestController : Controller
{
//[Route("[action]")]
public string Index()
{
return "this is controller at Alice.Controllers.Api"; ;
}
}
}
Controllers/TestController.cs :
namespace Alice.Controllers
{
//[Route("[controller]")]
public class TestController : Controller
{
//[Route("[action]")]
public string Index()
{
return "this is controller at Alice.Controllers";
}
}
}
Startup.cs
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}",
defaults: null,
constraints: null,
dataTokens: new { Namespaces = new[] { "Alice.Controllers" } });
routes.MapRoute(
name: "api",
template: "api/{controller}/{action}",
defaults: null,
constraints: null,
dataTokens: new { Namespaces = new[] { "Alice.Controllers.Api" } });
});
If more details need please ask.