请求的资源不支持 Web API 中的 http 方法'GET' vb.net



我正在 vb.net 中处理Web API 2,但GET方法遇到了问题。 首先,我能够将HttpGetAcceptVerbs放在类或操作方法上

我没有Routeconfig因为我创建了 Web API 2 使用模板项目。

这是我的WebApiConfig文件

Public Module WebApiConfig
Public Sub Register(ByVal config As HttpConfiguration)
' Web API configuration and services
' Web API routes
config.MapHttpAttributeRoutes()
config.Routes.MapHttpRoute(
name:="DefaultApi",
routeTemplate:="api/{controller}/{action}/{id}",
defaults:=New With {.id = RouteParameter.Optional}
)
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(New MediaTypeHeaderValue("text/html"))
End Sub
End Module

和 API 控制器类

Public Class HomeController
Inherits ApiController
' GET api/values
'Public Function GetValues() As IEnumerable(Of String)
'    Return New String() { "value1", "value2" }
'End Function

' GET api/values/5
Public Function ConcatValues(ByVal param1 As String,ByVal param2 As String) As String
Return "value"
End Function
End Class

但是当我运行网址时:http://localhost:43021/api/home/ConcatValues?param1=1&param2=2

我收到错误:

{"消息":"请求的资源不支持 http 方法 '得到'."}

<HttpGet()>属性添加到操作,以便您配置的基于约定的路由知道将操作与GET请求相关联。通常,约定会像GetConcatValues一样检查操作的名称,以根据约定确定它是GET请求。由于示例操作未采用该约定,因此下一个选项是将<HttpGet()>属性附加到操作定义。

' GET api/home/concatvalues?param1=1&param2=2
<System.Web.Http.HttpGet()>
Public Function ConcatValues(ByVal param1 As String,ByVal param2 As String) As String
Return "value"
End Function

最新更新