问题描述
我正在使用3.1版在ASP.NET Core MVC中构建一个新网站。我的要求之一是提供产品目录,其中可以将项目分为类别,子类别,子子类别等。
这些类别应以用户友好的方式在URL中表示,并且应可嵌套。例如,我想对类别和子类别使用以下URL模式:
site/catalog/fashion.html
site/catalog/fashion/men.html
site/catalog/fashion/men/summer-wear.html
site/catalog/fashion/men/summer-wear/jeans.html
从类别/子类别视图中选择“蓝色短裤”项目后,我想使用以下网址结构:
site/catalog/fashion/men/summer-wear/jeans/blue-shorts.html
我目前正在阅读有关路由在MVC中应该如何工作的信息,但是它正在尽我所能。那里有很多信息,我不确定这将是满足我要求的正确方法。
我该如何设置允许我无限分类的路线?
解决方法
使用MapDynamicControllerRoute
和DynamicRouteValueTransformer
,可以截取路由请求并动态适应框架正在调用的控制器/操作组合。
详细介绍此内容的博客文章: https://www.strathweb.com/2019/08/dynamic-controller-routing-in-asp-net-core-3-0/
此处的示例代码: https://github.com/filipw/Strathweb.Samples.DynamicControllerRouting