【发布时间】:2018-07-20 12:27:00
【问题描述】:
我正在使用 ASP.NET Core 2.0 Razor 页面(不是 MVC)构建一个系统,但在为页面添加多个路由时遇到问题。例如,所有页面都应该能够通过 abc.com/language/segment/shop/mypage 或 abc.com/language/shop/mypage 访问,其中两条路径都指向同一个页面。段路径部分是可选的,然后页面使用可选的段信息进行处理。
CombineTemplates 标记中的问号语法似乎不起作用,它似乎只在路径的最后一部分起作用。浏览到 {segment?} 部分中没有值的 url 会导致 404。例如:
AttributeRouteModel.CombineTemplates("{language}/{segment?}/shop", selector.AttributeRouteModel.Template);
我尝试了下面这样的代码,但它只是将两个路径相互附加,我需要能够将它们都启用为有效。
options.Conventions.Add(new DefaultPageRouteModelConvention());
options.Conventions.Add(new SegmentPageRouteModelConvention());
在 ASP.NET MVC 中,我可以添加两个不同的路由,指向同一个区域/控制器/动作,并使用两个不同的 MapRouteWithName。 任何想法如何使用 .NET Razor Page 语法来做到这一点?
【问题讨论】:
标签: c# asp.net-core-2.0 razor-pages