3
在HTML帮助器中生成URL
通常,在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的实例。必须有一个更简单的方法。