2017-04-24 77 views
0

在控制器的route属性中,如果可能,我想为我的rest api添加更多参数。我如何在运行代码时获取/使用它们。带有额外参数的routemapping c#net core

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

[路线( “API/[控制器]”)

,我想有不喜欢

[路线( “API/[语言]/[控制器]”)

然后将语言值传递给下一层。 所以我可以有一个默认语言或用户可以覆盖它,如果他想。

回答

0

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

请发现含有具有属性的TestController [RoutePrefix]和方法“GetDetails”下面的例子。

[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 /测试/ GetAllDetails”)]

+0

谢谢,是的,我知道,但有越来越远的价值观不设定它们每一种方法。如http:// localhost:62564/api/test/Hindi/GetDetails – joakimja

+0

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

+0

我已更新上述示例。 –