【问题标题】:Can anyone explain ASP.NET Web Pages Life cycle ? (Razor syntax)谁能解释 ASP.NET 网页生命周期? (剃刀语法)
【发布时间】:2013-05-08 06:31:44
【问题描述】:

我想知道使用 razor 语法的 ASP.NET 网页的生命周期。

根据 Stack Overflow 上关于 ASP.NET MVC 控制器生命周期的问题,答案表明它在以下位置进行了解释 http://msdn.microsoft.com/en-us/magazine/dd695917.aspx 。所以我问的不是同一个问题。

对于纯 ASP.NET 网页项目(而不是 MVC),我想知道浏览器请求 .CSHTML 文件时发生的事件顺序。

【问题讨论】:

  • 您的要求没有意义,页面生命周期适用于 aspx Web 表单(非 MVC)应用程序。我很确定你不能在 MVC 之外使用剃须刀,而且它没有你所说的“生命周期”。
  • 对于 asp.net (aspx) 生命周期试试这个链接msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx
  • @NicholasKing Razor 最初是为 ASP.NET 网页框架开发的:asp.net/web-pages。它后来被 MVC 团队作为新的视图引擎借用。
  • @MikeBrind 我不知道,但是在 ASP.NET 网页上查看该页面看起来像是没有 microsoft MVC 内容的 MVC 模式。
  • @NicholasKing 在网页中没有任何关于 MVC 模式的提示。它采用以页面为中心的方法,例如经典的 ASP 或 PHP。

标签: razor asp.net-webpages


【解决方案1】:

在网页项目中,从 System.Web.WebPages.WebPage 继承的 C# 类是在第一次向应用程序发出请求时从 Razor 文件生成的。该类有一个方法:Execute,它包含您的服务器端代码和许多输出 HTML 的 WriteLiteral 调用。每个类都以原始 .cshtml 文件命名,例如 Default.cshtml 变为

public class _Page_Default_cshtml : WebPage

这些类被编译成一个 dll。请求被路由到适当的类。

Web Pages 不像 Web Forms 那样是事件驱动的开发模型,因此没有特定的事件可以像 PreRender 或 Page_Load 等那样挂钩。

【讨论】:

  • 不胜感激指向任何可能有更多细节的链接的指针。感谢您的 cmets。
  • 您在寻找什么样的细节?
  • 我猜这可能是一个 Bad Idea(TM) 但如何(跳过控制器和)覆盖 WebPage.ExecutePageHierarchy,将 PreRender 代码放在那里(使用您自己的动态 ViewBag),然后调用 base.ExecutePageHierarchy?
猜你喜欢
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多