我有一个非常简单的控制器,其中包含2个方法:
public IActionResult Users(long id)
{
return Json(new { name = "Example User" });
}
public IActionResult Users()
{
return Json(new { list = new List<User>() });
}
有两个功能,一个是选择所有用户,另一个是返回所有用户。在Web API 2中,我可以使用以下路由,并且一切正常:
config.Routes.MapHttpRoute(
name: "Users",
routeTemplate: "v1/Users",
defaults: new { action = "Users", controller = "Users" },
constraints: null,
handler: new TokenValidationHandler() { InnerHandler = new HttpControllerDispatcher(config) }
);
我在startup.cs中设置了以下路由:
我在 startup.cs 中设置了以下路由:
app.UseMvc(routes =>
{
routes.MapRoute(name: "User_Default", template: "v1/{controller=Users}/{action=Users}/{id?}");
});
然而这个错误信息给出了 AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied
我做错了什么?
Route
的属性,它在许多模板中都存在。你能提供整个控制器吗? - Matt DeKrey