0

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

4

1 回答 1

1

MVC 无法判断较早的 URL 部分是否为空,因为它是不同的路由。

如果您的路线是:

视频/{categories}/{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,
    }
);
于 2013-07-09T14:27:08.320 回答