我想了解使用剃刀語法的ASP.NET Web頁面的生命週期。任何人都可以解釋ASP.NET網頁生命週期? (剃刀語法)
從Stack Overflow上關於ASP.NET MVC Controller生命週期的問題中,答案建議其解釋爲 http://msdn.microsoft.com/en-us/magazine/dd695917.aspx。所以我不是在問同樣的問題。
對於純ASP.NET網頁項目(而不是MVC),我想知道當瀏覽器請求.CSHTML文件時發生的事件序列。
我想了解使用剃刀語法的ASP.NET Web頁面的生命週期。任何人都可以解釋ASP.NET網頁生命週期? (剃刀語法)
從Stack Overflow上關於ASP.NET MVC Controller生命週期的問題中,答案建議其解釋爲 http://msdn.microsoft.com/en-us/magazine/dd695917.aspx。所以我不是在問同樣的問題。
對於純ASP.NET網頁項目(而不是MVC),我想知道當瀏覽器請求.CSHTML文件時發生的事件序列。
在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等
希望指向任何可能有更多細節的鏈接。感謝您的意見。 – dushyg 2013-05-28 03:28:52
你在尋找什麼樣的細節? – 2013-05-28 07:21:15
我猜這可能是一個壞主意(TM),但如何(跳過控制器和)重寫WebPage.ExecutePageHierarchy,將PreRender代碼放在那裏(使用您自己的動態ViewBag),然後調用base.ExecutePageHierarchy? – 2014-11-25 11:34:49
你所要求沒有意義的頁面生命週期適用於aspx Web窗體(非MVC)應用程序。我非常肯定你不能在MVC之外使用剃鬚刀,並且它沒有像你說的那樣有一個「生命週期」。 – 2013-05-08 10:03:54
for asp.net(aspx)生命週期嘗試此鏈接http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx – 2013-05-08 10:07:28
@NicholasKing Razor最初是爲ASP開發的。 NET網頁框架:http://www.asp.net/web-pages。它之後被MVC團隊借用爲一個新的View引擎。 – 2013-05-08 11:39:03