如何在MVC.NET中的共享(静态)方法中生成URL?

问题描述:

我在ASP.NET MVC中创建了一个共享(静态)方法,因此它可以被我的项目中的任何控制器使用。这个静态方法需要生成一个URL。我想我需要使用System.Web.Mvc.UrlHelper,但我无法弄清楚如何从静态方法中调用它。构造函数似乎需要一个RequestContext。有任何想法吗?如何在MVC.NET中的共享(静态)方法中生成URL?

AFAIK,没有办法静态地获取“当前”RequestContext。您需要从调用它的控制器传入RequestContext。任何控制器都可以通过使用此代码来实现:

this.ControllerContext.RequestContext 
+0

我可以用另一种方式生成URL吗?我想知道为什么我需要知道当前的RequestContext来生成一个新的URL。 – royco 2009-09-27 22:06:33

+0

P.S.这工作。谢谢。 – royco 2009-09-27 22:11:37

+0

UrlHelper是一个很好的方法。您也可以直接使用路由机制生成相对URL,但您需要传递路由信息。 – womp 2009-09-27 22:13:20