我正在使用 Web API 2,它似乎已经调用了我现有的 API 调用,除了它复制了我拥有的每个区域的所有调用。例如,假设我有 3 个区域,其中一个区域有一个 API 调用,如下所示:
public IList<string> GetStringList(string id)
{
//do work here...
return new List<string>{"a","b","c"};
}
如果我有 3 个区域,那么 web api 帮助页面将显示:
获取 area1/api/MyAPIController/GetStringList/{id}
获取 area2/api/MyAPIController/GetStringList/{id}
获取 area3/api/MyAPIController/GetStringList/{id}
并且 MyAPIController 仅存在于“area2”中。为什么会显示 3 次,我该如何解决?如果有帮助,我对 area2 的区域注册是:
public class Area2AreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Area2";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Area2_default",
"Area2/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
context.Routes.MapHttpRoute(
name: "Area2_ActionApi",
routeTemplate: "Area2/api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}