1

ルーティング構成が機能しない理由を理解するのにかなりの時間を費やしています。mysite/issues/500 と mysite/issues/ を試しましたが、常に 404 エラーが発生します。両方の get 関数にブレークポイントを設定しましたが、ブレークポイントに到達しません。多分垣間見ることが私を助けることができると思ったが、私はしようとした

ここに私のglobal.asaxがあります:

    Public Class MvcApplication
    Inherits System.Web.HttpApplication

    Sub Application_Start()
        AreaRegistration.RegisterAllAreas()
        RouteTable.Routes.MapRoute("Issues", "{controller}/{id}", New With {.id = UrlParameter.Optional})
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)
        RouteConfig.RegisterRoutes(RouteTable.Routes)
    End Sub
End Class

コントローラ:

Namespace Controllers


    Public Class IssuesController
        Inherits ApiController

        ' GET api/issues'
        Public Function GetValues(ByVal req As HttpRequestmessage) As IEnumerable(Of Issue)
            Dim querystrParams As NameValueCollection = Nothing
            Dim srch As IQuery
            If req.RequestUri.Query.Any() Then
                srch = New IssueTrackerQuery(req.RequestUri.ParseQueryString())
            End If
            Return (New EnumerableQuery(Of Issue)(New HashSet(Of Issue)))
        End Function

        ' GET api/issues/5'
        Public Function GetValue(ByVal IssuesId As Integer) As Issue
            Return New Issue()
        End Function

        ' POST api/issues'
        Public Sub PostValue(ByVal value As String)
            Throw New NotImplementedException()
        End Sub

        ' PUT api/issues/5'
        Public Sub PutValue(ByVal id As Integer, ByVal value As String)
            Throw New NotImplementedException()
        End Sub

        ' DELETE api/issues/5'
        Public Sub DeleteValue(ByVal IssuesId As Integer)
            Throw New NotImplementedException()
        End Sub

    End Class
End Namespace
4

1 に答える 1

4

Global.asax に API ルートがありません。( の代わりに)MapHttpRoute拡張メソッドを使用して追加します。MapRoute

Sub Application_Start()
    AreaRegistration.RegisterAllAreas()
    RouteTable.Routes.MapHttpRoute("Issues", "{controller}/{id}", New With {.id = UrlParameter.Optional})
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)
    RouteConfig.RegisterRoutes(RouteTable.Routes)
End Sub

routes.MapHttpRouteどちらが Web API コントローラーを登録するかに注意してください。

于 2012-06-12T19:10:55.207 に答える