是否可以使用maproute在asp.net mvc中路由多个参数

时间:2011-06-28 14:58:27

标签: c# asp.net-mvc restful-url maproute

我希望用户能够使用restful语法访问对象(可以是JSON或XML),而不必使用查询字符串。

因此,http://mywebsite.com/objects/get=obj1&get=obj2&get=someotherobject/代替http://mywebsite.com/objects/obj1/obj2/,可以执行类似 routes.MapRoute( "MyRoute", "MyController/MyAction/{param}", new { controller = "MyController", action = "MyAction", param = "" } ); 的操作,并返回xml / JSON。他们可以像查询字符串一样以任何顺序列出对象。

在asp.net mvc中,您可以映射一条路线:

       routes.MapRoute(
           "MyRoute",
           "MyController/MyAction/{params}",
           new { controller = "MyController", action = "MyAction", params = [] }
       );

我想做类似的事情:

params

{{1}}数组将包含每个get。

2 个答案:

答案 0 :(得分:3)

您可以使用catchall参数

   routes.MapRoute(
       "MyRoute",
       "MyController/MyAction/{*params}",
       new { controller = "MyController", action = "MyAction"}
   );

这会将params作为字符串传递,您可以在/上拆分以获取数组。

答案 1 :(得分:3)

不完全。

您可以通过映射{*params}来创建通配符参数 这将为您提供包含所有参数的单个字符串,然后您可以.Split('/')