[RoutePrefix("subscriptions")]
public class SubscriptionsController : ApiController
{
private SubscriptionsService _subscriptionsService;
public SubscriptionsController()
{
_subscriptionsService = new SubscriptionsService();
}
[Route("{email}")]
[HttpGet]
public IHttpActionResult Get(string email)
{但当我尝试
http://localhost:51561/api/subscriptions/myEmail
没有找到与请求URI匹配的HTTP资源
'http://localhost:51561/api/subscriptions/myEmail'.
知道为什么吗?
我还设置了WebApiCOnfig中的所有内容
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 }
);
}
}发布于 2017-07-31 10:31:45
您尝试了一个错误的URL。正确的网址应该是,
http://localhost:51561/subscriptions/myEmail或
如果需要API前缀,则需要更改控制器的路由前缀,如下所示,
[RoutePrefix("API/subscriptions")]然后这个URL就能工作了
http://localhost:51561/api/subscriptions/myEmail注意,这里使用的是两种路由,默认路由和属性路由。如果需要继续进行属性路由,则可以注释掉默认路由。
//config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "api/{controller}/{id}",
// defaults: new { id = RouteParameter.Optional }发布于 2017-07-31 09:49:33
我想您正在创建一些webApi服务吧?您在global.asax.cs注册了这条路线吗?就像这样:
httpConfiguration.Routes.MapHttpRoute(
name: "MyWebApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { controller = "ControllerName", action = "ActionName", id = RouteParameter.Optional },
constraints: null
);https://stackoverflow.com/questions/45412388
复制相似问题