如何使用3个以上的组件映射asp.net MVC路由?

时间:2011-05-18 10:05:14

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

我正在尝试学习asp.net mvc,几乎无处不在,我看到路由描述有三个组件,如/ Controller / Action / {anyParams} 我想知道我是否可以绘制类似的路线,

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

    /Admin/Student/Edit/id
    /ABC/Faculty/Add/`
    /XYZ/Student/Edit/id

或一般而言, /XYZ/Controller1/Action/{param}

2 个答案:

答案 0 :(得分:1)

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

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

应该这样做。

答案 1 :(得分:1)

您可以根据需要制作复杂的路线。

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) {

     }
}

因此,您可以根据需要指定任意数量的参数,并将它们作为函数参数传递给您的操作。