Примеры маршрутизации mvc для категорий и подкатегорий - PullRequest
0 голосов
/ 15 марта 2011

У меня статичный веб-сайт (без базы данных), и мне трудно понять, как настроить маршруты для подкатегорий. например, я могу сделать следующее, где категория - это контроллер, а make - это действие:

  • автомобили / Toyota
  • автомобили / BWM

но когда я добавляю другой уровень, я не знаю, как настроить маршрут

  • автомобили / Toyota / Camry
  • автомобили / Toyota / вн
  • автомобили / Toyota / Celica

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Я бы, наверное, выбрал год / марку / модель

routes.MapRoute(
   "Default",
   "{controller}/{year}/{make}/{model}"
   new
   {
       controller = "car", 
       action = "search",
       year = DateTime.Today.Year,
       model = "all",
       make = Url.OptionalParameter
   }
);

(вы можете захотеть, чтобы ограничение на год заставляло его быть разумным значением?)

сконтроллер типа

public class CarController 
{

    public ActionResult Search( int year, string make, string model )
    {
         // handle model "all" and empty "make" specially
    }
}
0 голосов
/ 15 марта 2011

Вы должны быть в порядке с маршрутом, похожим на это:

routes.MapRoute(
   "CarsRoute",
   "cars/{make}/{model}",
   new { 
      controller = "Cars", 
      action = "Display", 
      make = UrlParameter.Optional, 
      model = UrlParameter.Optional 
   });

Это будет соответствовать методу действия с подписью:

public ActionResult Display(string make, string model)

Где оба make и model может быть нулевым.Затем вы можете выполнять свои действия.

...