带有额外参数的路由映射 c# net core

routemapping with extra parameters c# net core

如果可能的话,我想在控制器的路由属性中为我的其余部分添加更多参数api。当 运行 代码时,我如何 get/use 它们。

控制器的默认路由如下所示。

[路线("api/[controller]")]

我想做这样的事情

[路线("api/[language]/[controller]")]

然后将语言值传递给下一层。 所以我可以有一个默认语言,或者用户可以根据需要覆盖它。

您可以使用 [RoutePrefix] 属性为整个控制器设置通用参数:

请找到以下示例,其中包含具有属性 [RoutePrefix] 和方法 "GetDetails" 的 TestController。

[RoutePrefix("api/{language}/test")]
public class TestController : ApiController
{
    [Route("GetDetails")]
    public string GetDetails(string language)
    {
        // Use language string parameter here.
        return language;
    }
}

这里的RoutePrefix包含参数{language},适用于所有方法。在方法属性上使用波浪号 (~) 来覆盖路由前缀。

例如-[路线("~/api/test/GetAllDetails")]

我找到了 damienbod 在 net core api 中所做的关于语言处理的语言处理示例。这个问题的很好的例子是路由语言和额外参数。

https://github.com/damienbod/AspNetCoreLocalization