Вы действительно не должны создавать UrlHelper
самостоятельно.Вполне вероятно, что в каком бы контексте вы ни находились в данный момент, уже имеется экземпляр IUrlHelper
:
Так что шансы, что вы можете просто получить доступ к this.Url
, чтобы получить URL-помощника.
Если вы оказались в ситуации, когда этого не существует, например, при реализации собственной службы, то вы всегда можете ввести IUrlHelperFactory
вместе с IActionContextAccessor
, чтобы сначала получить текущий контекст действия, а затем создать для него вспомогательный URL.
Что касается того, что ActionContext
, это, в основном, объект, который содержит различные значения, которые идентифицируют текущий контекст действия MVC, в котором обрабатывается текущий запрос.Таким образом, он содержит информацию о реальном запросе, разрешенном контроллере и действии или состоянии модели о связанном объекте модели.По сути, это расширение HttpContext
, также содержащее специфичную для MVC информацию.
Если вы используете ASP.NET Core 2.2 или более позднюю версию, вы также можете использоватьLinkGenerator
вместо IUrlHelper
внутри ваших служб, что дает вам более простой способ создания URL-адресов по сравнению с необходимостью создания помощника через IUrlHelperFactory
.