2013-05-08 58 views
0

我想了解使用剃刀语法的ASP.NET Web页面的生命周期。任何人都可以解释ASP.NET网页生命周期? (剃刀语法)

从Stack Overflow上关于ASP.NET MVC Controller生命周期的问题中,答案建议其解释为 http://msdn.microsoft.com/en-us/magazine/dd695917.aspx。所以我不是在问同样的问题。

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

+0

你所要求没有意义的页面生命周期适用于aspx Web窗体(非MVC)应用程序。我非常肯定你不能在MVC之外使用剃须刀,并且它没有像你说的那样有一个“生命周期”。 – 2013-05-08 10:03:54

+0

for asp.net(aspx)生命周期尝试此链接http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx – 2013-05-08 10:07:28

+0

@NicholasKing Razor最初是为ASP开发的。 NET网页框架:http://www.asp.net/web-pages。它之后被MVC团队借用为一个新的View引擎。 – 2013-05-08 11:39:03

回答

2

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

public class _Page_Default_cshtml : WebPage 

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

网页是不是一个事件驱动的发展模式,如Web窗体,所以没有特别的事件,这样你可以挂接到喜欢的PreRender或的Page_Load等

+0

希望指向任何可能有更多细节的链接。感谢您的意见。 – dushyg 2013-05-28 03:28:52

+0

你在寻找什么样的细节? – 2013-05-28 07:21:15

+0

我猜这可能是一个坏主意(TM),但如何(跳过控制器和)重写WebPage.ExecutePageHierarchy,将PreRender代码放在那里(使用您自己的动态ViewBag),然后调用base.ExecutePageHierarchy? – 2014-11-25 11:34:49

相关问题