【问题标题】:Is it possible to statically access the current controller?是否可以静态访问当前控制器?
【发布时间】:2011-01-02 16:31:53
【问题描述】:

出于纯粹的好奇,是否可以在使用当前HttpRequest/Action 执行当前控制器时从静态上下文访问当前控制器?

【问题讨论】:

  • 我建议在您的问题中总结您的 cmets on used2could's answer,了解“好奇心”以外的一些上下文会很有帮助:)
  • @Daniel - 明白了 :) 但是如果你点击这些链接,它们就是我所说的确切上下文。我认为这甚至是不可能的,因为显然在任何时候都有许多控制器在执行,但我只是想我会问。

标签: c# asp.net-mvc


【解决方案1】:

不,这在静态上下文中是不可能的,因为许多不同的控制器可能在某个给定时间点执行多个并发请求。

【讨论】:

  • 我想了很多 - 我只是不确定是否有一些特殊的方法可以做到这一点。无论如何,我意识到我的设计存在缺陷并对其进行了重新设计,因此我不需要这个要求。感谢您的确认!
【解决方案2】:

我不知道静态的方法,但是我在处理一些会话/身份验证管理时为此做了什么我的所有控制器都继承自自定义 BaseController 类,该类继承自 System.Web.Mvc.Controller班级。在基本控制器类中,我重写了 OnActionExecuted 方法。

public class BaseController : Controller
{
    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        //Your logic here

        base.OnActionExecuted(filterContext);
    }
}


public class HomeController : BaseController
{
    //
    // GET: /Home/

    public ActionResult Index()
    {
        return View();
    }


}

【讨论】:

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