2016-07-28 57 views
0

我想提供一个ASP.Net的Web API,可以通过以下格式被称为:带参数选项的Web Api路由?

HTTP :// myApiServer/API/MyLookupMethod/GetForIVR/******中国/ 8005551212

HTTP :// myApiServer/API/MyLookupMethod/GetForIVR LookupType = ******中国& LookUpValue = 8005551212

是否有可能建立一个适用于任何呼叫的路线?

我目前的路线是

config.Routes.MapHttpRoute(
name:"MyRoute", 
routeTemplate:"api/{controller}/{action}/{Lookuptype}/{lookupvalue}" 
); 

回答

0

尝试使用属性路由

[Route("api/user/YourMethodName/{id}/{param2}")] 
[HttpGet] 
public HttpResponseMessage YourMethodName(int id = 0, bool param2= true) 

希望工程!

0

您可以使用基于属性的路由,即控制器和方法上的特定路由。进一步,你应该传递你的2参数作为查询字符串,就像在这个URL MyLookupMethod/GetForIVR中一样LookupType = PhoneNumber & LookUpValue = 8005551212它们将被自动解析为方法参数。

public class SomeController : ApiController 
{ 
    // GET MyLookupMethod/GetForIVR?LookupType=PhoneNumber&LookUpValue 
    [Route("MyLookupMethod/GetForIVR")] 
    public Book Get(int LookupType, int LookUpValue) { ... } 

}