【问题标题】:getting route to controller action (url) programmatically以编程方式获取到控制器操作(url)的路由
【发布时间】:2009-04-18 22:38:05
【问题描述】:

我有一个名为“AccountController”的控制器和一个名为“ResetPassword”的操作。从 html 标记中,我可以执行以下操作:

<%= Html.ActionLink("LinkText", "ResetPassword", "AccountController") %>

它会输出正确的url。有没有办法以编程方式做到这一点?我试图在另一个类中将 url 作为字符串获取,但 System.Web.Mvc.HtmlHelper 没有 ActionLink() 静态方法,并且创建该类的实例也没有它。

注意:如果我尝试创建 HtmlHelper 或 UrlHelper 的实例,那么我需要对 View Context 或 Request Context 的引用,但我无法弄清楚如何从控制器中获取这些实例(以传递给我的类方法)

【问题讨论】:

    标签: asp.net-mvc controller


    【解决方案1】:

    请改用Url.Action

    【讨论】:

    • 当我尝试创建一个 UrlHelper 实例时,它会要求一个“requestContext”。如何获取 requestContext 以便创建 UrlHelper 实例?
    • 如果您在控制器中,请使用控制器的 HttpContext 属性。
    • 我在控制器外的一个类中,HttpContext.Current 将不起作用。我得到一个语法错误,它是错误的类型。
    • 然后尝试传入 ViewContext。对不起。
    • 因为我从控制器调用我的方法,所以似乎没有任何 ViewContext
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      相关资源
      最近更新 更多