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

The requested resource does not support http method 'GET' in vb.net web api

我在 vb.net 中的 Web API 2 上工作,我遇到了 GET 方法的问题。 首先,我可以将 HttpGetAcceptVerbs 放在 class 或操作方法

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

这是我的 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控制器class

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

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

我遇到错误:

{"Message":"The requested resource does not support http method 'GET'."}

<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