在课堂上的RouteUrl

时间:2011-12-28 12:56:20

标签: asp.net-mvc asp.net-mvc-3

如何在视图或控制器外部通过 RouteName 生成网址?

我希望在单独的类中为电子邮件生成 RouteName 的网址,但是如果我尝试使用 UrlHelper.GenerateUrl 。然后我看不出在哪里可以得到这个函数的其余参数。

1 个答案:

答案 0 :(得分:2)

  

如何通过RouteName外部视图或conroler生成URL?

你不应该这样做。应仅在您可以访问HTTP上下文的前层中生成URL,并将其作为参数传递给支持的层。

当然,你总是可以在你的后端层执行一些可怕的怪诞黑客攻击并硬编码一些静态HttpContext.Current,以便实例化UrlHelper,从而使你的支持层强烈耦合到HTTP堆栈,不可能在隔离和单元测试中重复使用。

哦,顺便说一下,如果你需要在你的申请中发送电子邮件,请结账MvcMailer。通过这种方式,您可以将电子邮件正文定义为模板,您可以在其中访问帮助程序和内容,而不需要执行前面提到的怪诞黑客。