2015-08-22 5 views
0

Мне нужно создать маршрут с динамическим количеством параметров в проекте mvc. Этот маршрут должен ссылаться на одно и то же действие контроллера. НапримерКак создать маршрут с динамическим подсчетом параметров

/Каталог/Автомобили/
/Каталог/Автомобили/BMW
/Каталог/Автомобили/BMW/x1

должны быть обработаны одним и тем же действием.

Как следует искать маршрут? Или мне нужно создать три маршрута?

ответ

2

Вам не нужно писать маршрут по дереву, просто введите параметры по желанию:

 routes.MapRoute(
      name: "YourRoute", 
      url: "{controller}/{action}/{catalog}/{subcatalog}/{model}", 
      defaults: new { 
       controller = "Home", 
       action = "Index", 
       catalog = UrlParameter.Optional, 
       subcatalog = UrlParameter.Optional, 
       model = UrlParameter.Optional } 
     ); 
+0

Извините, но я думаю, что мой вопрос не был спокоен. Мне также нужно использовать дополнительные параметры в конце маршрута ... Например, параметр страницы ... – Radislav

0

Это должно работать с маршрутом по умолчанию вы получаете с новым проектом MVC или вы можете сделать конкретный один:

routes.MapRoute(
    name: "Cars", 
    url: "{controller}/{action}/{manufacturer}/{model}", 
    defaults: new { 
     controller = "Catalog", 
     action = "Cars", 
     manufacturer = UrlParameter.Optional, 
     model = UrlParameter.Optional } 
); 

Вам просто нужен метод действия с дополнительными параметрами:

public class Catalog : Controller 
{ 
    public ActionResult Cars(string manufacturer = "", string model = "") 
    { 
     //snip 
    } 
} 
+0

и почему вам нужен по умолчанию 'string.Empty' значение для параметров в контроллере? –

Смежные вопросы