Как создать полный URL с ASP.NET Core вне представлений? - PullRequest
0 голосов
/ 11 июня 2019

У меня есть приложение, которое написано поверх ASP.NET Core 2.2 framework.Мне нужно создать данные JSON-Ld, для которых требуется полный URL.Объект, который я хочу преобразовать в JSON-Ld, создается с использованием класса обслуживания.В своем классе обслуживания я хочу иметь возможность создавать полный URL-адрес.

Я пытался создать URL-адреса с использованием класса LinkGenerator после внедрения его в конструкцию моего класса обслуживания.,Однако LinkGenerator генерирует соответствующий URI, а не полностью определенный URL (исключая домен).

Я также пытался создать экземпляр UrlHelper, надеясь, что смогу использовать его длягенерировать полностью определенные URL.После внедрения IHttpContextAccessor в сервисный подрядчик я попытался создать экземпляр UrlHelper примерно так:

var httpContextBase = new HttpContextWrapper(HttpContextAccessor.HttpContext);
var urlHelper = new UrlHelper(httpContextBase);

Однако new UrlHelper(httpContextBase) выдает следующее исключение

System.NullReferenceException: 'Ссылка на объект не установлена ​​для экземпляра объекта.'

Как правильно сгенерировать полные URL-адреса из класса обслуживания?

1 Ответ

2 голосов
/ 12 июня 2019

Я нашел один способ сделать это, используя LinkGenerator

Я ввел IHttpContextAccessor и LinkGenerator в конструктор моего класса обслуживания.Затем я сгенерировал полный URI так:

var url = LinkGenerator.GetUriByAction("index", "home", null, HttpContextAccessor.HttpContext.Request.Scheme, HttpContextAccessor.HttpContext.Request.Host);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...