сбой при создании ссылки с использованием UrlHelper и нового ядра URI .NET - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь создать ссылку для разбивки на страницы, используя IUrlhelper в ядре .net в моем webapi.

Я получаю ошибку

"Значение не может быть нулевым. Имя параметра: uriString"

У меня при запуске следующий код:

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

тогда у меня есть класс, для которого я создаю свои пейджинговые ссылки

public class LinkBuilder
{
    public LinkBuilder(IUrlHelper urlHelper,string routeName, PagingInfo pagingInfo)
    {

        var mylink = CreateLink(urlHelper, "GetMovies", pagingInfo.PageNumber, pagingInfo.PageSize);

        etc.....
    }

    private Uri CreateLink(IUrlHelper urlHelper,
                            string routeName,
                            int pageNo,
                            int pageSize)
    {
        //CRASHES ON NEW URI!  "Value cannot be null.
                                Parameter name: uriString"

        return new Uri(
        urlHelper.Link(routeName, 
        new { PageNumber = pageNo, PageSize = pageSize }));
    }

также, если сделать следующее, моя ссылка всегда пуста. Не понимаю !!

// примечание urlhelper не равно нулю при введении

        var link = urlHelper.Link("getsomething", new { PageNumber = 1, PageSize = 20});

    Any ideas what I am doing wrong?

    thanks

1 Ответ

0 голосов
/ 05 мая 2018

нашел свой ответ. имя маршрута должно совпадать с именем маршрута при создании ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...