2013-07-09 85 views
0

我的网址如下:www.example.com/video/1 category1,category2,category3/sex/hospital/doctor但是在我的url category1和category2和category3中(可能是1或者太多)可以为空/空。还有性或医院或医生也可以为空。我如何检测哪一个是空的。如果类别为空。然后,mvc将性别视为类别,将医院视为性别。我可以使用什么样的方法?Asp.net特定的Mvc路由

+1

我建议你使用参数:http://stackoverflow.com/questions/2246481/routing-with-multiple-parameters-using-asp-net-mvc – Nick

+0

感谢。但是我的情况与此不同。 – fuat

回答

1

MVC无法判断一个早期的URL部分是否为null,而不是它是不同的路由。

如果你的路线是:

视频/ {类别}/{子类别1}/{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