如何在MVC.NET中的共享(静态)方法中生成URL?
问题描述:
我在ASP.NET MVC中创建了一个共享(静态)方法,因此它可以被我的项目中的任何控制器使用。这个静态方法需要生成一个URL。我想我需要使用System.Web.Mvc.UrlHelper,但我无法弄清楚如何从静态方法中调用它。构造函数似乎需要一个RequestContext。有任何想法吗?如何在MVC.NET中的共享(静态)方法中生成URL?
答
AFAIK,没有办法静态地获取“当前”RequestContext。您需要从调用它的控制器传入RequestContext。任何控制器都可以通过使用此代码来实现:
this.ControllerContext.RequestContext
我可以用另一种方式生成URL吗?我想知道为什么我需要知道当前的RequestContext来生成一个新的URL。 – royco 2009-09-27 22:06:33
P.S.这工作。谢谢。 – royco 2009-09-27 22:11:37
UrlHelper是一个很好的方法。您也可以直接使用路由机制生成相对URL,但您需要传递路由信息。 – womp 2009-09-27 22:13:20