在ASP.NET Core MVC中,可以通过以下方式从HTML Helper静态方法中的HTML Helper上下文中获取UrlHelper:
ViewContext
属性获取当前视图的上下文信息。ViewContext
属性获取的ViewContext
对象中包含了HttpContext
属性,可以通过该属性获取当前HTTP请求的上下文信息。HttpContext
对象中,可以通过Request
属性获取当前HTTP请求的相关信息。Request
对象中,可以通过Services
属性获取当前应用程序的服务容器。IUrlHelperFactory
服务。IUrlHelperFactory
服务的GetUrlHelper
方法,可以获取到一个UrlHelper
对象。下面是一个示例代码,展示了如何从ASP.NET Core MVC HTML Helper静态方法中的HTML Helper上下文中获取UrlHelper:
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Mvc.Routing;
public static class MyHtmlHelperExtensions
{
public static string MyCustomHelper(this IHtmlHelper htmlHelper)
{
// 获取当前视图的上下文信息
var viewContext = htmlHelper.ViewContext;
// 获取当前HTTP请求的上下文信息
var httpContext = viewContext.HttpContext;
// 获取当前应用程序的服务容器
var serviceProvider = httpContext.RequestServices;
// 获取IUrlHelperFactory服务
var urlHelperFactory = serviceProvider.GetService<IUrlHelperFactory>();
// 使用IUrlHelperFactory服务获取UrlHelper对象
var urlHelper = urlHelperFactory.GetUrlHelper(viewContext);
// 使用UrlHelper对象生成URL
var url = urlHelper.Action("ActionName", "ControllerName");
return url;
}
}
在上述示例代码中,MyCustomHelper
方法是一个自定义的HTML Helper静态方法。通过调用MyCustomHelper
方法,可以获取到一个URL,该URL是通过UrlHelper
对象生成的。
请注意,上述示例代码中的ActionName
和ControllerName
需要替换为实际的控制器和动作方法名称。此外,还可以根据需要使用UrlHelper
对象的其他方法来生成不同类型的URL。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。
暂时确立了Oracle的课程设计的技术栈使用ASP.NET MVC + Oracle,视时间情况选择是否使用Dapper或者EF,先搭建Web的基础框架,在搭建ASPdotNet MVC项目中遇到了不少问题,专门开一篇用于备份和以后的快速查询。 超链接跳转 直接写链接——变更路由后需要重写 关于我们 Html Helper ——自动匹配路由 @Html.ActionLink("About this application", "About") 跳
领取专属 10元无门槛券
手把手带您无忧上云