我正在尝试更新旧 MVC 项目 (.NET Framework 4.5.2) 中的一些代码以与 .NET Core 2.2 一起使用。我陷入了 HtmlHelper 的扩展方法的困境,该方法在字符串内生成链接。
public static HtmlString GetMenu(this HtmlHelper htmlHelper)
{
htmlString += string.Format("<li{0}>{1}</li>",
controller == "Examples" ? " class=\"selected\"" : "",
htmlHelper.ActionLink("Examples", "Index", "Examples")
);
}
HtmlHelper 类位于 .NET Core 中的 Microsoft.AspNetCore.Mvc.ViewFeatures 中,但 ActionLink 方法需要更多信息。它现在需要 8 个参数,而不是旧项目中的 3 个参数,其中两个是协议(protocol)和主机名。但我不确定如何在静态类中获取主机名和协议(protocol),而不访问 HttpContext。
最佳答案
在 ASP.NET Core 中,之前称为 HtmlHelper
的类现已被 IHtmlHelper
接口(interface)取代。
这意味着所有链接扩展 (HtmlHelperLinkExtensions
) 也已切换到该界面。
关于c# - ASP.NET核心: HtmlHelper extension (migration issue),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54362433/