【发布时间】:2018-01-17 20:39:16
【问题描述】:
我想在我的 api 中再添加一个参数,但它不是固定的。在这种情况下,{config} 可以是 config1、config2、config1433....
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{config}/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我已经尝试使用委托处理程序获取参数并将其从请求 uri 中删除,但它不起作用,因为 url 已被分析。
【问题讨论】:
-
你不需要做任何复杂的事情,如果你只能有一个名为“id”的参数,那将是非常有限的。我喜欢使用属性路由,更容易让你的路由随心所欲。 docs.microsoft.com/en-us/aspnet/web-api/overview/…
-
我认为情况不同。我要传递的这个参数独立于任何控制器或动作。我不想将它传递给所有控制器或所有操作。
-
我不明白你在问什么。
-
使用属性参数,我将在所有操作中进行装饰和阅读。我所有的行为都必须接受这个属性。我想要在 web api 堆栈中更通用和更早的东西。这就是我尝试使用 routeTemplate 的原因。或者,另一种选择可以像子域一样使用它。类似 {config}.myhost.com/api/{controller}/{id}
-
您知道您可以映射多个路线模板吗?您可以根据需要映射任意数量。
标签: c# asp.net-web-api