首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在HTML帮助器中生成URL

在HTML帮助器中生成URL
EN

Stack Overflow用户
提问于 2009-09-18 10:16:13
回答 3查看 62.8K关注 0票数 169

通常,在ASP.NET视图中,可以使用以下函数来获取URL (而不是<a>):

Url.Action("Action", "Controller");

但是,我找不到如何从自定义HTML帮助器中执行此操作。我有过

public class MyCustomHelper
{
   public static string ExtensionMethod(this HtmlHelper helper)
   {
   }
}

helper变量有Action和GenerateLink方法,但它们会生成<a>。我深入研究了ASP.NET的MVC源代码,但找不到一种简单的方法。

问题是上面的Url是视图类的成员,为了实例化它需要一些上下文和路由映射(我不想处理这些内容,也不应该处理这些内容)。或者,HtmlHelper类的实例也有一些上下文,我假设它是Url实例的上下文信息子集的子集(但我也不想处理它)。

总而言之,我认为这是可能的,但既然我能看到的所有方法都涉及到一些或多或少的内部ASP.NET内容的操作,我想知道是否有更好的方法。

编辑:以为例,我看到的一种可能性是:

public class MyCustomHelper
{
    public static string ExtensionMethod(this HtmlHelper helper)
    {
        UrlHelper urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
        urlHelper.Action("Action", "Controller");
    }
}

但这似乎并不正确。我不想自己处理UrlHelper的实例。肯定有更简单的方法。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1443647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档