多个前缀规则的MapRoute模板语法

问题描述 投票:1回答:1

我有几个API(目前有5个)来自同一个MVC Core应用程序。

我正在尝试定义这样的maproute,但我不知道正确的语法,或者它是否存在:

routes.MapRoute(
   name: "apiDefault",
   template: "{" + string.Join("|", _apis) + "}/{*url}",
   defaults: new { controller = "Home", action = "ApiNotFound" });

我可以添加5个相同的规则,但我更愿意,如果我可以避免它。

先感谢您!

asp.net-core-mvc-2.0
1个回答
1
投票

解决方案非常简单。我将前缀定义为自定义约束:

routes.MapRoute(
   name: "apiDefault",
   template: "{api}/{*url}",
   defaults: new { controller = "Home", action = "ApiNotFound" },
   constraints: new RouteValueDictionary
   {
      { "api", string.Join("|", _apis) }
   });
© www.soinside.com 2019 - 2024. All rights reserved.