【发布时间】:2019-06-11 20:24:51
【问题描述】:
我有一个基于 ASP.NET Core 2.2 框架编写的应用程序。我需要创建需要完整 URL 的 JSON-Ld 数据。我要转换为 JSON-Ld 的对象是使用服务类生成的。在我的服务类中,我希望能够创建完整的 URL。
在将 LinkGenerator 类注入到我的服务类的构造中后,我尝试使用它来创建 URL。但是,LinkGenerator 会生成相关的 URI,而不是完全限定的 URL(不包括域)。
我还尝试创建UrlHelper 的实例,希望可以使用它来生成完全限定的 URL。将IHttpContextAccessor 注入服务承包商后,我尝试像这样创建UrlHelper 的实例
var httpContextBase = new HttpContextWrapper(HttpContextAccessor.HttpContext);
var urlHelper = new UrlHelper(httpContextBase);
但是,new UrlHelper(httpContextBase) 抛出以下异常
System.NullReferenceException: '对象引用未设置为对象的实例。'
如何从服务类正确生成完全限定的 URL?
【问题讨论】:
-
根据定义,“完全限定的 URL”包括域。它通常在 Web 标准文档中被称为“绝对 URL”:stackoverflow.com/q/17406848/215552
标签: c# asp.net asp.net-core asp.net-core-mvc asp.net-core-2.2