Vb.net 具有多个POST和单PUT方法的Web Api控制器
根据下面的代码,我可以调用/api/cards和/api/cards/list,但现在可以调用/api/cards/1234567890 WebApiConfigVb.net 具有多个POST和单PUT方法的Web Api控制器,vb.net,asp.net-web-api,Vb.net,Asp.net Web Api,根据下面的代码,我可以调用/api/cards和/api/cards/list,但现在可以调用/api/cards/1234567890 WebApiConfig config.Routes.MapHttpRoute( _ name:="WithActionAndIdApi", _ routeTemplate:="api/{controller}/{action}/{id}", _ defaults:=New With {.id = RouteParam
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"} _
)
卡片控制器
<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
公共函数PostValue(作为Card_POST.Card的ByVal值)作为HttpResponseMessage
公共函数PostValue(作为Cards的ByVal值_POST.CardList)作为HttpResponseMessage
公共函数PutValue(ByVal Id作为字符串,ByVal值作为Card_PUT)作为HttpResponseMessage
我已将配置路由更改为下面的代码,它能够支持上面的情况
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"})} _
)
请确保你在问一个问题。不清楚您遇到了什么问题,或者您试图解决什么问题。您是如何执行PUT请求的?@Mate,我已通过更改配置解决了问题。太棒了!祝贺 你!把自己的答案标记为正确