【问题标题】:I am passing a Controller as a parameter, can't get to RedirectToAction method?我将控制器作为参数传递,无法访问 RedirectToAction 方法?
【发布时间】:2010-06-16 00:25:19
【问题描述】:

我的方法如下:

public static RedirectToResult(Controller controller, ...)
{

}

当我这样做时:

controller.

我没有看到 RedirectToAction,怎么会?

我从控制器的操作中获得 RedirectToAction,但当我将控制器作为参数传递给另一个类方法时却没有。为什么?真的很迷茫!

【问题讨论】:

  • Controller.RedirectToAction 是一种内部方法,因此您无法从自己的程序集中调用它。你想达到什么目的?
  • 我想将所有与 url 相关的功能包装到一个 Url 帮助器类中,以避免单独更改 100 个位置。
  • 调用 RedirectToAction 会向浏览器发出 302 并强制执行新请求。你确定这是你想做的吗?
  • womp,是的,这就是我想要的。我只是在 RedirectToAction 周围创建一个包装器,但使它成为强类型。

标签: c# asp.net asp.net-mvc


【解决方案1】:

RedirectToAction 是一个受保护的函数。您只能从控制器类内部调用它。

【讨论】:

    【解决方案2】:

    如果您正在寻找扩展方法,则需要在类型之前添加“this”关键字。

        public static ActionResult RedirectToResult(this Controller controller)
        {
    
        }
    

    希望对你有帮助

    【讨论】:

    • 你还需要“使用 Namespace.Where.Extension.Method.Declared;”
    【解决方案3】:

    你可以试试T4MVC。它肯定有助于制作强类型的 Url 助手。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2020-05-19
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      相关资源
      最近更新 更多