ASP.NET Core:HtmlHelper扩展(迁移问题)

时间:2019-01-25 09:34:10

标签: c# html-helper asp.net-core-2.2

我正在尝试更新旧的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")
        );
}

在.NET Core的Microsoft.AspNetCore.Mvc.ViewFeatures中可以找到HtmlHelper类,但是ActionLink方法需要更多信息。现在不再需要旧项目中的3个参数,它现在需要8个参数,其中两个是协议和主机名。但是我不确定如何在不访问HttpContext的情况下在静态类中获取主机名和协议。

1 个答案:

答案 0 :(得分:1)

在ASP.NET Core中,以前称为HtmlHelper的类现在已由接口 IHtmlHelper 取代。

这意味着所有链接扩展(HtmlHelperLinkExtensions)也都已切换到该接口。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.rendering.htmlhelperlinkextensions?view=aspnetcore-2.2