我的Products控制器中有两个操作方法。这是我的RouteConfig。
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
这是两个行动及其工作网址。
[HttpGet]
//uri:http://localhost:49964/api/products/product?strKey=1
public IHttpActionResult Product(string strKey)
[HttpPost]
//uri:http://localhost:49964/api/products/product
public IHttpActionResult Product([FromBody] Product product)
但我也想使用以下网址进行GET。
http://localhost:49964/api/products/product/1
但是web api回应了,
The requested resource does not support http method 'GET'.
答案 0 :(得分:1)
将 constructor(private _App : App ) { }
@HostListener('scroll') onScroll(){
this._App.functionInComponent('someValue');
}
更改为strKey
,或者如果要保留id
,请执行相反的操作。
strKey
路由模板需要匹配映射按预期工作的操作。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{strKey}",
defaults: new { strKey = RouteParameter.Optional }
);
但这意味着此路线中的所有操作都可选择使用//GET api/products/product/1
//GET api/products/product?strKey=1
[HttpGet]
public IHttpActionResult Product(string strKey)
作为占位符