0

重複の可能性:
ASP.NETMVCを使用した複数のパラメーターを使用したルーティング

MVC4 Web APIを試して、Global.asaxで次のルートを定義しました。

routes.MapRoute(
  name:="API Default", 
  url:="api/{systemid}/{controller}/{id}",
  defaults:=New With {.id = RouteParameter.Optional}
)

それに応じてコントローラーを変更しました

Public Class ValuesController
    Inherits ApiController

 Public Function GetValues(systemid As Integer) As IEnumerable(Of String)
     ---
 End Function

 Public Function GetValue(systemid As Integer, ByVal id As Integer) As String
     ---
 End Function
End Class

私はリクエストを次のようにフォーマットしようとしていました

http://localhost/api/13/values/5 

ただし、有効な呼び出しは、明示的なパラメータを使用することだけです。

http://localhost/api/values?id=5&systemid=4

私が探していたものを達成する方法はありますか?

4

1 に答える 1

2

Web APIルーティングを使用する代わりに、MVCルーティングを使用したのではなく、間違ったルーティングクラスを使用していると思います。

routes.MapHttpRoute(
  name:="API Default", 
  routeTemplate:="api/{systemid}/{controller}/{id}",
  defaults:=New With {.id = RouteParameter.Optional}
)
于 2012-07-30T14:38:18.027 に答える