MVC3 0高階 MVC框架和應用程式結構(三)

2021-05-26 21:56:22 字數 2338 閱讀 4798

在asp.net**中,url 通常對映到儲存在磁碟上的檔案(通常為.aspx 檔案)。

這些.aspx 檔案包括經過處理以響應請求的標記和**。

asp.net mvc 框架將 url 對映到不同於 asp.net web 窗體頁面的伺服器**。

該框架會將 url 對映到 controller 類,而不是將url 對映到asp.net頁面或處理程式。

controller 類將處理傳入的請求,如使用者輸入和互動,並根據使用者輸入執行相應的應用程式和資料邏輯。

controller 類通常會呼叫乙個生成 html 輸出作為響應的單獨檢視元件。

mvc應用程式結構概述

asp.net mvc 框架會將模型、檢視和控制器元件分開。

模型表示應用程式的業務/域邏輯,通常具有資料庫支援的資料。

檢視由控制器進行選擇,並呈現相應的 ui。

預設情況下,asp.net mvc 框架使用現有的asp.net 頁面(.aspx)、母版頁(.master) 和使用者控制項(.ascx) 型別呈現到瀏覽器。

控制器將在自身中查詢相應的操作方法,獲取要用作操作方法引數的值,並處理可能會在執行操作方法時發生的任何錯誤。

然後,它將呈現請求的檢視。

預設情況下,每組元件都位於 mvc web 應用程式專案的單獨資料夾中。

url 路由

asp.net mvc 框架將使用 asp.net 路由引擎,通過該引擎可以靈活地將 url 對映到 controller 類。 我們可以定義 asp.net mvc 框架使用的路由規則,以評估傳入的 url 以及選擇相應的控制器。 我們還可以讓該路由引擎自動分析 url 中定義的變數,並讓 asp.net mvc 框架將值作為引數自變數傳遞給控制器。

mvc 框架和回發

asp.net mvc 框架不使用 asp.net web 窗體回發模型與伺服器互動,

而是會將所有終端使用者互動路由到 controller 類。

這樣可使 ui 邏輯與業務邏輯保持分開並有助於提高可測試性。

因此,asp.net 檢視狀態和 asp.net web 窗體頁面生命週期事件不會與基於 mvc 的檢視整合。

mvc 專案模

web 應用程式 mvc 專案結構

建立 asp.net mvc web 應用程式專案時,mvc 元件會按專案資料夾分開,如下圖所示:

預設情況下,mvc 專案包括以下資料夾:

此資料夾的作用與它在使用 web 窗體頁面的 asp.net **中的作用相同。

content,建議在此位置新增內容檔案,如級聯樣式表檔案、影象等。

通常,content 資料夾用於儲存靜態檔案。

controllers,建議在此位置儲存控制器。

mvc 框架要求所有控制器的名稱均以「controller」結尾,如 homecontroller、logincontroller 或 productcontroller。

models,這是為表示 mvc web 應用程式的應用程式模型的類提供的資料夾。

此資料夾通常包括定義物件以及定義與資料儲存互動所用的邏輯的**。

通常,資料模型物件將位於單獨的類庫中。

但是,在建立新應用程式時,您可以將類放在此處,然後在開發周期中稍後的某個時刻將其移動到單獨的類庫中。

scripts,建議在此位置儲存支援應用程式的指令碼檔案。

預設情況下,此資料夾包含 asp.net ajax 基礎檔案和 jquery 庫。

views,建議在此位置儲存檢視。

檢視使用 viewpage (.aspx)、viewusercontrol (.ascx) 和 viewmasterpage (.master) 檔案,以及與呈現檢視相關的任何其他檔案。

在 views 資料夾中,每個控制器都具有乙個資料夾;該資料夾以控制器名稱字首命名。

例如,如果控制器名為 homecontroller,則 views 資料夾包含名為 home 的資料夾。

預設情況下,當 asp.net mvc 框架載入檢視時,它將在「views\控制器名稱」資料夾中尋找具有請求的檢視名稱的 viewpage (.aspx) 檔案。

預設情況下,views 資料夾中也有乙個名為 shared 的資料夾,但該資料夾不與任何控制器相對應。

shared 資料夾用於儲存在多個控制器之間共享的檢視。

例如,我們可以將 web 應用程式的母版頁放在 shared 資料夾中。

除了使用前面列出的資料夾之外,mvc web 應用程式還使用 global.asax 檔案中的**來設定全域性 url 路由預設值,並且使用 web.config 檔案來配置應用程式。

mvc3 0學習總結(一)控制項

一 html.actionlink linktext actionname 該過載的第乙個引數是該鏈結要顯示的文字,第二個引數是對應的控制器的方法,預設控制器為當前頁面的控制器,如果當前頁面的控制器為products,則 html.actionlink detail detail 則會生成 all ...

MVC3 0的學習小總結

學習首先得找個好老師,這邊部落格講的相當不錯,可供參考 碰到的問題 2 新增model層的時候基本是跟以前的寫法類似,只是如果需要表單要驗證之類的,需要重寫,以下可以直接訪問這個部落格,3 controllers層,需要你寫控制器,自己編造些值,直接寫個方法呼叫展示。未來資料庫訪問也是在這裡寫的 4...

MVC 3 0 學習筆記(強大的過濾器)

操作篩選器的某些可能用途包括 asp.net mvc 支援以下型別的操作篩選器 篩選器執行順序 篩選器按下列順序執行 授權篩選器 操作篩選器 響應篩選器 異常篩選器 例如,授權篩選器最先執行,異常篩選器最後執行。在每個篩選器型別中,order 值將指定執行順序。在每個篩選器型別和順序中,scope ...