如何在Web API 2中使用两个完全相同的控制器。需要在Web API中使用完全相同的控制器2
我需要使用URL,如下所示。
mysite/api/Contacts/get/2
和
mysite/api/v1/Contacts/get/2
但是,如果使用单独的文件夹为此,它提供了一个错误。
我WebApiConfig.cs这样
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
这是错误
多种类型的发现匹配名为 '默认' 的控制器。 如果为请求 ('api/v1/{controller}/{id}')提供服务的路由找到多个使用 定义的控制器,并且名称空间不同(不受支持),则会发生这种情况。该 请求“缺省”发现下列匹配控制器: TestWebAPI.Controllers.DefaultController TestWebAPI.Controllers.v1.DefaultController
我如何才能做到这一点......基本上,我需要这个版本。
你得到的错误是什么? – RePierre
从我看到你试图访问这个链接:'mysite/api/version1/Contacts/get/2',但是路由注册了这个:'mysite/api/v1/Contacts/get/2' – Spluf
可能的重复http://stackoverflow.com/questions/34715625/multiple-types-were-found-that-match-the-controller/34716586#34716586 –