创建一个匹配 ASP.NET Core 中以特定模式开头的所有 url 的路由模板

问题描述 投票:0回答:2
我有一个在 ASP.NET Core 5 / .NET 5 Framework 之上编写的应用程序。我需要创建一个路由模板,它将引导任何以

/homes-for-sale-in-{city}-{id:int}

 开头的 URL 来定义控制器/操作。

以下是一些网址示例

/homes-for-sale-in-los-angeles-100/condo,apartment_type /homes-for-sale-in-los-angeles-100/0-5000_price/10_page /homes-for-sale-in-los-angeles-100/condo_type/0-5000_price/2_page .... yes there are many more
我尝试了以下模式

[Route("/homes-for-sale-in-{city}-{id:int}{*.}", Name = "HomesForSaleByCity")] public async Task<IActionResult> Display(string city, id? id) { return View(); }
但我收到此错误:

RoutePatternException:包含多个部分(例如文字部分或参数)的路径段不能包含包罗万象的参数。

如何添加一个模式来重定向任何以模式开头的 url?

asp.net-core asp.net-core-mvc asp.net-core-5.0
2个回答
3
投票
这成功了

[Route("/homes-for-sale-in-{city}-{id:int}/{**filters}", Name = "HomesForSaleByCity")] public async Task<IActionResult> Display(string city, id? id, string filters = "") { return View(); }
    

0
投票
我相信您需要使用正则表达式进行路由,并且可以参考

此页面一次。

© www.soinside.com 2019 - 2024. All rights reserved.