2017-03-18 16 views
1

vb.netのWeb API 2で作業していますが、GETメソッドで問題が発生しています。すべての まず私は、私がWeb API 2採用のテンプレートプロジェクトを作成したので、私はRouteconfigを持っていないのいずれかのクラスやアクションメソッド要求されたリソースがvb.netのWebメソッド 'GET'をサポートしていませんweb api

HttpGetまたはAcceptVerbsを置くことができることができますよ。

ここに私の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 

が、私は、URL実行すると:「

{:http://localhost:43021/api/home/ConcatValues?param1=1&param2=2

を私はエラーを取得していますメッセージ ":" reqあなたが設定され規則ベースのルーティングがGET要求にアクションを関連付けるために知っているようにuestedリソースのHTTPメソッドをサポートしていません 「GET」。 "}

答えて

1

は、アクションに​​属性を追加します。通常、この慣例では、アクションの名前はGetConcatValuesのように検査され、慣例としてGETの要求であると判断されます。このアクションの例では、次のオプションは、アクション定義に​​属性を付加することです。

' 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 
関連する問題