對MVC的理解

2022-03-15 06:46:20 字數 1722 閱讀 3556

今天聽了qihangnet對於mvc的講解,並且安裝了aspnetmvcbeta之後,談一下自己的理解

mvc區別以往的asp.net的程式乙個很大的地方是asp.net將url對映到磁碟上的乙個檔案,而mvc模式把url對映到**類上。這些類稱為「controllers(控制器)」,它們負責處理到來的請求,處理使用者輸入和互動,執行基於輸入和互動的相應的應用和資料邏輯。然後,乙個controller類一般會呼叫單獨的「檢視」元件,該元件負責生成請求的實際的html輸出。

一、新建乙個mvc專案會自動生成三個資料夾和乙個預設的頁面

models------------------資料模型類

views-------------------檢視模板類

controllers--------------控制器類

default.aspx------------預設的頁面,實際上是空的,裡面什麼也沒有

二、系統會預設在views下面生成乙個目錄home,裡面兩個檔案about.aspx和index.aspx,我們就以這個為例子

在controllers資料夾下面也預設生成了乙個類homecontroller.cs,這個類中有兩個方法public actionresult about()和public actionresult index()

這樣我們可以知道,在views中的每乙個目錄在controllers下都對應乙個控制器類,類中有對應於頁面的方法

三、介紹一下這些方法

public actionresult index()

這是乙個預設的方法,給的兩個屬性賦值之後,返回乙個view();頁面上的**<%= html.encode(viewdata["message"]) %>獲得這個值顯示出來

當然可以有完成其他功能的一些**,例如:

public actionresult create()

public actionresult createnew()

完成了某些操作之後返回index操作,也就是另外乙個controlaction,也就是再進行顯示

既然有了create方法,在home目錄下就要建立乙個對應它的檔案create.aspx,

這個地方要注意,我用的是vs2008中文版,在安裝了mvc之後,並沒有像教程那樣可以直接新建mvc的頁,這時直接建立頁面也可以,但是新建的頁面要修改一下,本來是繼承自page類的,現在應該繼承system.web.mvc命名空間中的viewpage類,否則編譯會出錯,提示"must derive from viewpage"

index.aspx頁面中的**如下

add new tasks

對應了create()方法,也就是對應了乙個控制

新建頁面create.aspx

頁面中**

其中action="/home/createnew",home代表控制器,createnew代表具體的操作(action),可以是讀寫資料庫或者其他的別的操作,然後最後再返回到index操作

如果要獲取input中的輸入,只要修改createnew方法

public actionresult createnew(string task)

就可以獲得task了

如果想要在頁面中迴圈顯示資料庫中內容,就要在頁面的建構函式中獲取列表,然後迴圈顯示在頁面上,這個部分以後再寫

對MVC的理解

下面的內容基本是摘錄自 也加入了自己的理解和想法。contorller指的是控制器,主要負責與model和view打交道。換句話說,model和view之間一般不直接打交道,他們老死不相往來。view中不會對model作任何操作,model不會輸出任何用於表現的東西,如html 等。這倆甩手不幹了,...

對mvc的理解

mvc是是一種軟體設計模式 m屬於模型層 用來處理資料庫的增刪改查 v屬於檢視層 用來給使用者呈現介面 c屬於控制層 用來接收使用者資訊,處理業務邏輯,負責載入統一的檢視和模型 優點 開發人員只需要關注整體架構的某一層即可 可以降低層與層之間的依賴 有利於邏輯層的 復用 擴充套件性強 例如可以通過簡...

對MVC的理解

m 是model 模型 v 是 view 檢視 c 是controller 控制器 談談理解 模型 表示應用程式核心 模型用於對資料庫的操作 如增刪改查的操作 檢視就是顯示給使用者看的頁面 控制器 處理輸入 寫入資料庫記錄 控制器就是控制邏輯處理的頁面 一般用於呼叫模型層執行邏輯處理或者組織資料 之...