net core 2.1的urlHelper好像在3.x后就直接catch出去了。
现在使用IHttpContextAccessor来代替urlHelper
private readonly IHttpContextAccessor _accessor; private readonly LinkGenerator _generator; public MyService(IHttpContextAccessor accessor, LinkGenerator generator) { _accessor = accessor; _generator = generator; } [HttpGet(Name = "GetPosts")] public async Task<IActionResult> Get([FromQuery]PostParameters postParameters) { //里面写方法 } private string CreatePostUri(PostParameters parameters) { //取得想要的url var previousParameters = new { pageIndex = parameters.PageIndex - 1, pageSize = parameters.PageSize, orderBy = parameters.OrderBy, fields = parameters.Fields }; var url0 = generator.GetUriByRouteValues(accessor.HttpContext,"GetPosts", previousParameters); }
对了 如果是用的空webapi 我们还需要在Startup.cs里面注册IHttpContextAccessor
services.AddHttpContextAccessor();