我有2個地區與具有相同的AI控制器名稱2 API控制器,但不同的命名空間,並且通過2個不同的MapHttpRoute(配置)以其獨特的名字和呼叫路由。他們也成功編譯沒有問題。但是,在兩者中都有匹配的操作方法,並且當我撥打一個電話時,我會回到下面的例外。多個API控制器共享同一個命名空間
這是從異常消息明確指出它不支持,而是有一種優雅的分辨率,所以我沒有,儘管在不同的命名空間是唯一的名字我的API控制器?
例外:
多種類型的發現命名 'SomethingApi' 控制器匹配。這可能發生,如果這 請求(「路線一/ API /事/ {行動}」)找到具有相同名稱但不同的命名空間,這是不支持 定義多個控制器 的路線。
路線例如:
public static void RegisterApiRoutes(HttpConfiguration config)
{
// URL: /route-one/api/something/
config.Routes.MapHttpRoute(
"RoutOne.Api.Something",
"route-one/api/something/{action}",
new { controller = "SomethingApi" }
);
}
路線在兩個命名空間是從項目的WebApiConfig叫:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
RouteOneAreaRegistration.RegisterApiRoutes(config);
RouteTwoAreaRegistration.RegisterApiRoutes(config);
}
}
你可以同時顯示兩個獨立區域的路線註冊嗎?看起來好像MVC認爲你註冊了兩個區域/路線一樣... – Jason
你在哪裏調用RegisterApiRoutes()? –
您是否試圖爲MapHttpRoute指定區域名稱? – Fals