Как можно сопоставить маршрут MVC asp.net с более чем 3 компонентами? - PullRequest
0 голосов
/ 18 мая 2011

Я пытаюсь изучить 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 ]

1 голос
/ 18 мая 2011

Вы можете сделать свои маршруты настолько сложными, насколько захотите.

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

     }
}

Таким образом, вы можете указать столько параметров, сколько захотите, и они будут переданы в ваше действие как параметры функции.

1 голос
/ 18 мая 2011

Да, второй параметр в функции MapRoutes (обычно в Global.asax.cs - это Url, и это может быть любой шаблон, который вы хотите. Например,

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

должен выполнитьобмануть.

...