2013-07-09 2 views
0

Мой URL-адрес выглядит следующим образом: www.example/videos/category1, category2, category3/sex/hospital/doctor Но в моей категории URL1 и категории2 и категории3 (может быть 1 или слишком много) может be null/empty. Также секс или больница или врач также могут быть нулевыми. Как я могу определить, какой из них является нулевым. Если категории равны нулю. Тогда mvc чувствует секс как категории и больницу как секс. Какой подход я могу использовать?Asp.net specific Mvc Routing

+1

Я предлагаю вам использовать параметры: http://stackoverflow.com/questions/2246481/routing-with-multiple-parameters-using-asp-net-mvc – Nick

+0

Спасибо. Но мой сценарий отличается от этого. – fuat

ответ

1

MVC не может определить, имеет ли предыдущая часть URL значение null, поскольку это другой маршрут.

Если ваш маршрут:

видео/{категория}/{subcategory1}/{subcategory2}/{subcategory3}/

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

context.MapRoute(
    "video_nocategories", 
    "videos/all/{subcategory1}/{subcategory2}/{subcategory3}/", 
    new 
    { 
     action = "Index", 
     controller = "Video", 
     categories = "", 
     subcategory1 = UrlParameter.Optional, 
     subcategory2 = UrlParameter.Optional, 
     subcategory3 = UrlParameter.Optional, 
    } 
); 

context.MapRoute(
    "video_categories", 
    "videos/{categories}/{subcategory1}/{subcategory2}/{subcategory3}/", 
    new { 
     action = "Index", 
     controller = "Video", 
     subcategory1 = UrlParameter.Optional, 
     subcategory2 = UrlParameter.Optional, 
     subcategory3 = UrlParameter.Optional, 
    } 
); 
+0

Спасибо за помощь. – fuat