0

可能重复:
使用 ASP.NET MVC 使用多个参数进行路由

尝试使用 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

我正在寻找格式请求 uri 喜欢

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 回答