如何使用路由名称获取WebAPI路由URL

时间:2017-12-02 17:09:10

标签: c# asp.net .net-core asp.net-core-2.0 asp.net-core-webapi

这个问题很安静,但我无法在网上或微软的文档中找到解决方案(或者我可能看起来不够: - ))

所以在这里,我有一个标有HttpGet属性的方法,路由名称为“GetValues”。有没有办法使用路线名称获取路线的URL(我认为这是路线名称的唯一要点)。

    [Route("api/Values")]
    public class ValuesController : ControllerBase
    {
        [HttpGet("{id}", Name = "GetValues")]
        public async Task<IActionResult> GetValuesAsync()
        {

        }
}

1 个答案:

答案 0 :(得分:2)

简单的解决方案是:

var url = Url.Link("GetValues", "Values", new { id = 123 });

但完整的网址是:

var url = string.Format("{0}{1}", 
                        Request.Url.Authority,
                        Url.Action("GetValues", "Values", new { id = 123 }));