【问题标题】:How can map an asp.net MVC route with more than 3 components?如何映射具有 3 个以上组件的 asp.net MVC 路由?
【发布时间】:2011-05-18 10:05:14
【问题描述】:

我正在尝试学习 asp.net mvc,几乎在任何地方我都能看到包含三个组件的路由描述,例如 /Controller/Action/{anyParams} 我想知道我是否可以映射类似的路线,

/Folder(or namespace)/Controller/Action/params... 例如:

/管理员/学生/编辑/id /ABC/教师/添加/` /XYZ/学生/编辑/id

或者一般来说, /XYZ/Controller1/Action/{param}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing


    【解决方案1】:

    是的,MapRoutes 函数中的第二个参数(通常在 Global.asax.cs 中是 Url,这可以是您想要的任何模式。类似于

    routes.MapRoute("MyRoute", "XYZ/Controller1/Action/{param}", new {controller = "Controller1", action = "Action"}});

    应该可以解决问题。

    【讨论】:

      【解决方案2】:

      您可以根据需要使路线变得复杂。

      F.e.以下路线:

      routes.MapRoute("some-route", "products/detail/order/{id}/{name}/",
                   new { controller = "Products", action = "Order" },
                   new { id = "^\d+" });
      

      将路由到以下函数:

      public class ProductsController : Controller {
           public ActionResult Order (int id, string name) {
      
           }
      }
      

      因此您可以指定任意数量的参数,它们将作为函数参数传递到您的操作中。

      【讨论】:

      • 如果我在两个命名空间/(子)文件夹下有两个同名的控制器怎么办,如何通过上述路由映射?
      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2015-12-26
      • 2012-09-03
      • 2011-04-10
      相关资源
      最近更新 更多