UrlHelper有时不返回基本URL

时间:2018-06-13 06:38:07

标签: c# asp.net-core asp.net-core-mvc

我正在创建一个.NET Core 2.1 web api,并且遇到了UrlHelper的问题。我使用Link方法确定从一个资源到另一个资源的链接。大部分时间它工作得很好,但有时结果字符串缺少基本网址。

E.g:

  • 请求1:http://localhost:1234/api/books?pageNumber=1&pageSize=10确定
  • 请求2:http:///api/books?pageNumber=1&pageSize=10不行

它在正确和错误的结果之间来回传递,有时它们都是错误的,有时它们都是正确的。

ConfigureServices:

        services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
        services.AddScoped<IUrlHelper, UrlHelper>(factory =>
        {
            var actionContext = factory.GetService<IActionContextAccessor>().ActionContext;
            return new UrlHelper(actionContext);
        });

创建链接的示例方法(分页):

        public string CreateResourceUri(
        ResourceUriType type,
        string name,
        IUrlHelper urlHelper,
        object additionalValues = null)
    {
        dynamic values = CreateValues().Merge(additionalValues);

        switch (type)
        {
            case ResourceUriType.PreviousPage:
                values.pageNumber = values.pageNumber - 1;
                return urlHelper.Link(
                    name,
                    values);
            case ResourceUriType.NextPage:
                values.pageNumber = values.pageNumber + 1;
                return urlHelper.Link(
                    name,
                    values);
            default:
                return urlHelper.Link(
                    name,
                    values);
        }
    }

非常感谢任何关于此处出现问题的想法。

0 个答案:

没有答案