2017-01-10 97 views
0

基于下面的代码,我能够调用/ API /卡/ API /卡/清单,但现在/ API /卡/ 1234567890网页API控制器与多个POST和单put方法

WebApiConfig

config.Routes.MapHttpRoute(_ 
     name:="WithActionAndIdApi", _ 
     routeTemplate:="api/{controller}/{action}/{id}", _ 
     defaults:=New With {.id = RouteParameter.Optional} _ 
    ) 

    config.Routes.MapHttpRoute(_ 
     name:="WithIdApi", _ 
     routeTemplate:="api/{controller}/{id}" _ 
    ) 

    config.Routes.MapHttpRoute(_ 
     name:="DefaultApi", _ 
     routeTemplate:="api/{controller}", _ 
     defaults:=New With {.action = "DefaultAction"} _ 
    ) 

CardsController

<HttpPost()> 
<ActionName("DefaultAction")> 
Public Function PostValue(<FromBody()> ByVal value As Card_POST.Card) As HttpResponseMessage 

<HttpPost()> 
<ActionName("list")> 
Public Function PostValue(<FromBody()> ByVal value As Cards_POST.CardList) As HttpResponseMessage 

<HttpPut()> 
Public Function PutValue(ByVal Id As String, <FromBody()> ByVal value As Card_PUT) As HttpResponseMessage 
+0

请确保您提出问题。目前还不清楚你有什么问题或你正试图解决什么问题。 – chambo

+0

你如何做PUT请求? – Mate

+0

@Mate,我通过更改我的config.Routes – belltric

回答

1

我已经改变了我config.Routes到下面的代码,它是能够支持上面我的情况。

config.Routes.MapHttpRoute(_ 
     name:="DefaultApiWithId", _ 
     routeTemplate:="api/{controller}/{id}", _ 
     defaults:=New With {.id = RouteParameter.Optional}, _ 
     constraints:=New With {.id = "^\d+$"} _ 
    ) 

    config.Routes.MapHttpRoute(_ 
     name:="DefaultApiWithAction", _ 
     routeTemplate:="api/{controller}/{action}" _ 
    ) 

    config.Routes.MapHttpRoute(_ 
     name:="DefaultApiGet", _ 
     routeTemplate:="api/{controller}/{id}", _ 
     defaults:=New With {.id = RouteParameter.Optional}, _ 
     constraints:=New With {.httpMethod = New HttpMethodConstraint({"GET"})} _ 
    ) 

    config.Routes.MapHttpRoute(_ 
     name:="DefaultApiPost", _ 
     routeTemplate:="api/{controller}", _ 
     defaults:=New With {.action = "DefaultPostAction"}, _ 
     constraints:=New With {.httpMethod = New HttpMethodConstraint({"POST"})} _ 
    ) 

    config.Routes.MapHttpRoute(_ 
     name:="DefaultApiPut", _ 
     routeTemplate:="api/{controller}/{id}", _ 
     defaults:=Nothing, _ 
     constraints:=New With {.httpMethod = New HttpMethodConstraint({"PUT"})} _ 
    )