c# - ASP.NET核心: HtmlHelper extension (migration issue)

标签 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")
        );
}

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

最佳答案

在 ASP.NET Core 中,之前称为 HtmlHelper 的类现已被 IHtmlHelper 接口(interface)取代。

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

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

关于c# - ASP.NET核心: HtmlHelper extension (migration issue),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54362433/

相关文章:

asp.net-core - 如何使用 Identity server 4 JWT 身份验证和资源所有者密码授予使 jwt 访问 token 失效或撤销?

c# - 有没有办法停止 DataGridViewCheckBoxColumn 单击时自动检查?

c# - ASP.NET Core JWT/Windows 身份验证 HTTP 400 错误

c# - 在 OnInit() 中获取控件值的最佳方法是什么?

asp.net-mvc - 自定义 HtmlHelper 扩展方法在 View 中不可用?

json - ASP.NET MVC Json.Encode()DateTime编码问题字符串不是日期类型

c# - 如何避免在 linq 中加载特定列

c# - 更好的方式来构建我在 View 字段上执行用户权限的方式

c# - SignalR Core 2.2 CORS AllowAnyOrigin() 重大变更

c# - 如何使用 ASP.NET Core 获取当前路由名称?