我有一个控制器有2个方法具有相同的参数但是如果我调用它我得到一个错误
Several actions that matched the request were found:
我认为我必须更改Map路由才能完成,但我不知道该怎么做
我的方法:
public IHttpActionResult RecuperarMenu(short idInstalacion,string secretKey)
public IHttpActionResult RecuperarClasesColectivas(short idInstalacion, string secretKey)
我的路线图
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
namespaces = new[] { "WebServicesRestAPI.Controllers" }
}
);
//routes.MapRoute(
// name: "Default",
// url: "{controller}/{action}/{id}",
// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//);
}
答案 0 :(得分:0)
我想包含你的方法的控制器是一个WebAPI控制器(它来自 ApiController 类)。正确的吗?
因此,作为WebAPI控制器:
它不是通过MapRoute方法配置的,而是通过HttpConfiguration.Routes。 MapHttpRoute 方法配置的(默认情况下,它在〜/ App_Start / WebApiConfig.cs中配置)文件):
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
控制器中的名称应遵循GET / POST / PUT / DELETE模式(或者应由您明确映射)。
如果你的方法对应于GET操作,它们应该有不同的参数(如果你的方法你有相同的参数)。