Web Api的生成url问题

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();

 

posted @ 2020-05-05 20:35  hurui12  阅读(403)  评论(0编辑  收藏  举报