MVC4:如何控制多个参数

时间:2012-07-30 13:01:44

标签: asp.net rest asp.net-mvc-routing asp.net-mvc-4 asp.net-web-api

  

可能重复:
  Routing with Multiple Parameters using 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

我希望格式化请求,例如

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

但是唯一可以使用显式参数的工作是

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

有没有办法完成我想要的东西?

1 个答案:

答案 0 :(得分:2)

我猜你使用错误的路由类,而不是使用Web API路由,你使用MVC路由,应该是:

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