2011-07-16 82 views
1

目前,我們正在遷移現有asp.net web應用程序asp.net的MVC 2的平臺。我們所有的頁面在加載頁面或初始化頁面之前都會執行一些業務功能。如何實現在asp.net的MVCasp.net的MVC頁生命週期事件

這是我們目前在pagebase類這樣的Web應用程序的邏輯這個類似的行爲.. 如果(!Page.IsPostBack) // Presenter.PerformStartUp()

請幫忙。

感謝 蘇布

回答

2

ASP.NET MVC比你可能已經在經典的WebForms曾經用過的一個完全不同的模式。 MVC中沒有事件。 MVC中沒有頁面。 MVC中有PostBack的概念。 MVC中沒有ViewState。 MVC中沒有服務器端控件。

在MVC中必須接收該用戶請求一個控制器,它操縱模型及傳遞的視圖模型視圖,用於顯示。一個好的起點是:http://asp.net/mvc

如果您正在嘗試遷移的現有應用程序已經正確編寫,並且它最好有一個服務層和一個數據訪問層,那麼您可以將這些部分重用到新的ASP.NET MVC應用。

0

在asp.net的MVC,你用屬性[HttpPost]裝潢他們創造的ActionResult方法[HTTPGET(HTTPGET是默認值),這是一個獲取與後什麼sepparates。

+0

謝謝。但如果用戶按F5(刷新),我們不想調用啓動邏輯 – subramn

+0

我不知道什麼是在啓動邏輯,但在MVC沒有viewstate,所以如果用戶按f5你仍然需要處理得到,因爲它不會「記住」以前發生的事情,我確信有一種方法可以做你在問什麼,但對我來說,它將圍繞存儲用戶以前做過的事情,如果他碰巧做同樣的事情兩次中止第二次嘗試。 – Joakim

+0

我們有預屏幕邏輯(在導航到這個頁面時),當用戶離開頁面時,我們觸發後屏幕logic.how我們可以在所有頁面以通用的方式在管道中連接這些類型的定製邏輯 – subramn

0

你描述的(!回傳)的位變爲存在一個在HTTP GET執行的操作方法。

在一個典型的和簡單的場景,你將有2種action方法,一個與HttpVerbs.Get裝飾屬性,以及一個飾有HttpVerbs.Post屬性。 get方法通過基本上將模型與視圖掛鉤來準備視圖。該視圖然後呈現在用戶的瀏覽器中。當用戶發佈表單時,它將通過您的發佈操作方法進行處理。

在現實生活中往往是比這更復雜一點的jQuery,AJAX,JSON的東西。但是我上面描述的基本上是這種模式。我發現它比asp.net模型更多,更清潔,更健全。

+0

我如何配置只調用一次的方法? – subramn

+0

@hatchet HttpVerbs.Get和HttpVerbs.Post不用於mvc2,它已被替換爲[HttpGet] [HttpPost]。 – Joakim

+0

我們有預屏幕邏輯(在導航到此頁面時),當用戶離開頁面時,我們觸發後屏幕邏輯。我們可以以通用方式在管道中爲所有頁面連接這些類型的定製邏輯 – subramn