【发布时间】:2016-06-09 08:34:09
【问题描述】:
我已经修改了我的Get() 端点以采用另一个参数,但它不再起作用了
public async Task<AjaxResponse> Get(long id, string appType)
{
}
这是我为新参数添加的路由配置(如果我不添加,请求返回 404):
routes.MapHttpRoute(
name: "GetUser",
routeTemplate: "api/{controller}/{userId}/{appType}"
);
现在请求该端点,例如
/api/AccountApi/343434338361295/customer
最终在默认框架生成Get()端点:
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
我的路由配置有什么问题,我可以做些什么来解决它?
作为参考,我的整个路由配置如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//ASP.NET Web API Route Config
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapHttpRoute(
name: "CreateOrLogin",
routeTemplate: "api/{controller}/CreateOrLogin/{appType}/{userId}"
);
routes.MapHttpRoute(
name: "GetUser",
routeTemplate: "api/{controller}/{userId}/{appType}"
);
routes.MapHttpRoute(
name: "GetAdsForRetailer",
routeTemplate: "api/{controller}/GetAdsForRetailer/{userId}/{page}/{pageSize}"
);
routes.MapHttpRoute(
name: "GetLatestAds",
routeTemplate: "api/{controller}/GetLatestAds/{userId}/{maxId}"//
);
routes.MapHttpRoute(
name: "GetAd",
routeTemplate: "api/{controller}/GetAd/{userId}/{id}"//
);
routes.MapHttpRoute(
name: "RegisterUser",
routeTemplate: "api/{controller}/RegisterUser/"//
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
【问题讨论】:
标签: c# asp.net-web-api routes