2013-07-04 3 views
3

прямо сейчас у меня есть маршрут по карте, которая соответствуетмаршрутизации, соответствующий конкретный URL, если он содержит слово

foreach(var subcat in Sports.Categories) 
{ 
routes.MapRoute("MultiRoute" + i, subcat+"/{title}", 
new { controller = "Routing", action = "Redirect", category = subcat }); 
} 

У меня есть некоторые спортивные категории: бейсбол, футбол, баскетбол и т.д., но я также хочу, чтобы баскетбольный матч с BasketBall-Plays, BasketBall-Highlights, Top-10-Basketball и т. д.

Это означает, что я должен разрешить подкату иметь подстановочный знак до и после, поскольку BasketBall-Plays содержит слово Basketball, я хочу, чтобы он перенаправлять туда.

Как я могу создать раздел для маршрутизации карты?

Редактировать: TLDR: У меня есть подкаст с именем баскетбол, но я хочу сопоставить каждый URL-адрес, в котором есть слово баскетбол. Так баскетбол играет/топ-10 фактически должны ударить баскетбол/топ-10

пытался:

foreach(var subcat in Sports.Categories) 
    { 
    routes.MapRoute("MultiRoute" + i, subcat+"/{title}", 
    new { controller = "Routing", action = "Redirect", category = subcat }), 
new{sub = ".*"+sub+".*" }); 
    } 
+0

Одна из перегрузок - это ограничение, которое принимает регулярное выражение. – Silvermind

+0

@Silvermind Мне известно о перегрузках ограничений, но могу ли я выполнить регулярное выражение на субкате? Я думал, что могу использовать его только для параметров {title} – Spooks

+0

После проверки кажется, что ваша маршрутировка немного. Не могли бы вы показать несколько примеров URL-адресов и какого контроллера-> действия, которые они должны назвать? – Silvermind

ответ

4

Если я правильно понял, то должно работать,

var subCategories = new[] { "Soccer", "BasketBall", "Golf" }; 
foreach (var subcat in subCategories) 
{ 
    routes.MapRoute(subcat, "{subcat}/{title}", 
         new {controller = "Routing", action = "Redirect", category = subcat}, 
         new { subcat = @".*\b" + subcat + @"\b.*" }); 
} 

Это маршрут

  • Баскетбол/топ-10
  • Баскетбол-пьесы/топ-10
  • баскетбольные игры/топ-10
  • Топ-10-Баскетбол/sometitle

надеюсь, что это помогает.

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