【发布时间】:2019-11-04 15:36:03
【问题描述】:
我可能走上了死胡同,所以我希望有人能告诉我“转身!”或“继续前进!” - 我正在尝试将 HTML 帮助程序从 ASP.NET 5 应用程序转换为 .NET Core 2.0 应用程序。在扩展类中调用助手时遇到了麻烦。首先,我读到 .NET Core 使用 DI 将 appsettings 放入单独的类中,因此我使用 DI 设置了扩展类:
private readonly AppSettings _appsettings;
public HtmlHelperExtensions2(IOptions<AppSettings> appSettings)
{
_appsettings = appSettings.Value;
}
而且我可以从 appSettings.json 返回项目。问题是要使用 DI,我需要从类签名中删除“静态”引用,所以我还必须从帮助程序调用中删除“this”引用:
public void HelpPanel(HtmlHelper htmlHelper, string thingId, string language)
{ }
否则会出现编译错误。但是没有“this”引用,调用需要一个新的 HtmlHelper。
所以我正在努力克服它,如果我真的可以克服它的话。这是正确的道路还是我在这里走上了死胡同?除了 HtmlHelpers 之外,我还需要在 Core 中使用其他东西吗?我无法确定它们是否在 Core 中得到支持。
【问题讨论】:
标签: c# asp.net-core razor