[英]How to use attribute routing in for get method with same parameter in web api 2
[英]Calling a Get method in Web API with attribute routing
我的WebApi.config
看起來像這樣:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
這意味着它被configured to support both attribute based routing and conventional routing
。
樣本控制器創建:
[RoutePrefix("v1")]
public class Values1Controller : ApiController
{
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
[Route("products")]
public string Get(int id)
{
return "value";
}
}
當我調用http://localhost.domain/api/values1/v1/時 ,響應為value1, value2
但是,當我嘗試調用http://localhost.domain/api/values1/v1/products/1時 (請注意public string Get(int id)
方法上的products
屬性路由,沒有找到斷點。
換句話說,如何調用帶有屬性路由Route(products)
的public string Get(int id)
方法?
您使用/v1/products?id=10
來敲擊動作public string Get(int id)
或將路由模板更改為[Route("products/{id}")]
以發出類似於/v1/products/10
請求
請注意,與常規路由匹配的請求無法達到屬性的控制器/動作,因此這意味着您無法執行api/values/1
來達到public string Get(int id)
動作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.