Asp.net mvc 4 MVC4和页面生命周期?

Asp.net mvc 4 MVC4和页面生命周期?,asp.net-mvc-4,Asp.net Mvc 4,ASP.NET MVC4不像常规的aspx页面那样具有页面生命周期。如何在MVC4中使用preinit、init、prerender MVC4中是否有任何类型的生命周期?不,本质上没有页面生命周期(因为没有“页面”对象),但有一个请求处理管道,通常是这样的: 传入请求由System.Web.Routing.UrlRoutingModule拾取,该模块使用请求url将请求映射到控制器操作方法 相应的控制器被实例化 可能会发生模型绑定和输入验证 调用控制器和/或操作上的OnActionExecuti

ASP.NET MVC4不像常规的aspx页面那样具有页面生命周期。如何在MVC4中使用preinit、init、prerender


MVC4中是否有任何类型的生命周期?

不,本质上没有页面生命周期(因为没有“页面”对象),但有一个请求处理管道,通常是这样的:

  • 传入请求由
    System.Web.Routing.UrlRoutingModule拾取,该模块使用请求url将请求映射到控制器操作方法
  • 相应的控制器被实例化
  • 可能会发生模型绑定和输入验证
  • 调用控制器和/或操作上的
    OnActionExecuting
    -操作方法过滤器
  • 将调用操作方法本身
  • 任何
    OnActionExecuted
    OnResultExecuting
    -将调用操作方法筛选器
  • 执行操作方法返回的
    ActionResult
    (通常是呈现HTML的
    ViewResult
  • 任何
    OnResultExecuted
    -调用操作方法筛选器
  • 上面的列表只是一个粗略的示意图:

    路由: 将传入请求映射到MVC控制器的操作方法本身就是一个故事。有关更多信息,请参阅

    操作筛选器: 有用于授权、输出缓存、错误处理等的操作过滤器,所有这些都在特定时间运行。这一次,请参阅以了解更多信息

    ASP.NET: 当然,还有所有的问题。因此,像good old
    System.Web.Security.FormsAuthenticationModule
    System.Web.Caching.OutputCacheModule
    这样的HTTP模块仍然可以参与请求的处理

    如果您想深入了解详细信息,请从下载ASP.NET web堆栈的源代码。您所追求的大部分内容都将出现在
    System.Web.Mvc.ControllerActionInvoker
    类中,尽管名称很吓人,但并不难理解

    请参阅Dejan的答案,以获得一个很好的图表链接,该图表概括了这一点

  • 您的web浏览器在服务器上发送HTTP请求
  • 请求通过HTTP路由
  • 这些路线通常列在
    Global.asax.cs
    文件中,当我们的请求与我们转发的其中一条地图路线匹配时
  • 路由处理程序,在这里我们创建MVC请求处理程序,现在我们知道将使用哪个控制器以及要执行的操作
  • 然后我们到达控制器,在那里我们调用服务并创建模型
  • 我们将此模型传递给视图引擎(如RAzor)
  • 然后,作为响应渲染和输出视图

  • Msdn文档可在

    上找到。您可以查看这篇文章“”,它大约在一周前发布。这里还有一个要下载的文件。

    为什么要下载?你想达到什么目的?你也可以查看下面的链接,这一定会让你有更好的洞察力:优秀的图表和答案。请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(而不是另一个参考文献的中途停留,随着时间的推移往往会过时)。请考虑在这里添加一个独立的概要,将链接作为参考。