所以在我的WebApi配置中,我添加了一条新路线
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ControlPanelApi",
routeTemplate: "cp/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我有控制器
public class SwitchUserController : BaseApiController
{
public HttpResponseMessage Put(int id) {
return Request.CreateResponse(HttpStatusCode.OK);
}
}
然而在铬:
Request URL:http://localhost:1352/cp/SwitchUser/123
Request Method:PUT
Status Code:404 Not Found
我一直使用默认的web api路由.我错过了什么?
最佳答案 我在一个小的测试web api项目中尝试了这些路由,一切正常.
但这是我的建议.
尝试在两个不同的项目中拆分您的解决方案.
首先是config.file
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
第二个
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "cp/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
在您选择的Web服务器中正确注册这些站点,您就完成了.
这种方法应该有效.
此外,使用这种技术,您可以避免两个URL访问多个控制器的情况:api / someController和cp / someController