mvc在底層和傳統的asp.net是一致的,在底層之上,相關流程如下:
2)routeconfig.registerroutes()方法裡,給出的預設規則為 // .
a. 在有特別需要的時候,到這裡來修改規則。
b. 未指明controller預設為homecontoller,未指定action預設為index, 也就是說,直接訪問站點時,會預設導航到homecontroller下的index action.
c. action後跟的內容會被對映為名為id的引數。 比如: user/delete/1 會匹配到 usercontroller的 delete(int id) 方法。
d. action分為[httpget]和[httppost]兩種,與http的get和post方式對應。 即直接請求的url只會匹配[httpget]方法,而未註明[httppost]的方法即預設為[httpget]. post的action一般會有乙個model引數,mvc會自動將表單裡的資料按約定的規則填充到model實體物件裡。 這個約定的規則,就是表單的name與屬性名稱有個對應規則。
3)mvc負責按上述規則將執行流程匯入合適的action中,即controller的某個方法中。
4)action中,可以直接返回字串,輸出到瀏覽器, 也可以返回到actionresult物件, 該物件指向乙個view頁面,並且附帶了一些屬性作為傳遞資料的容器。
actionresult通常通過呼叫controller物件的view(…)方法得到,也可以通過redirect()方法或redirecttoaction()方法得到, 不過後面兩種方法主要用於跳轉到其它controller,因為後面的方法不能傳遞model物件。 action向view傳遞資料,可以通過model、viewbag或viewdata三種容器,其中model是強型別的,所以是最優先的方式。
5)view中,會先執行本身,再執行模板頁和子頁, 但是執行順序和頁面內容的輸出順序並不一致。模板中後輸出的內容可以在頁面中先輸出的內容的前面.
在view中,需要提交資料,或跳轉頁面裡,均會通過route導向某個controller的action。 view中向action中傳遞資料,其最終原理是通過http的get和post等方式(含ajax的), post方式會通過上面提到的約定規則,將表單中的資料填充到model引數物件中。 在action中,可以訪問通過引數傳遞進來的model物件,也可以訪問原始的request物件中的querystring引數或form集合, 當然model物件是優先的方式。
本篇內容結束。
輕鬆學MVC4 0 1 建立MVC專案
原文 前提條件 安裝好vs2012 1 建立新專案,選mvc裡的internet專案。它會自動的幫助我們做很多任務作,是最輕鬆的mvc開始之門。2 設定資料庫。資料庫和一些基礎的表,會在後面自動建立。這裡我們設定一下資料庫的名稱等資訊。修改web.config裡的defaultconnection連...
輕鬆學MVC4 0 7 View之Razor
原文 razor,很有意思的剃刀。相較與之前開發web的方式,razor真是輕鬆愜意。下面說一下我使用razor的一些心得。頁面中歸根結底是乙個輸出字串 html css js等混合的字串 的過程。現在流行的web開發方式,包括asp net jsp,php 等等,在頁面上,都是在輸出html字串的...
輕鬆學MVC4 0 3 刪除使用者功能
儲存後,右鍵點選專案檔案,彈出選單中選 在瀏覽器中檢視 如果未登入點選users,會跳轉到登入頁面,這是因為在其controller類accountcontroller中,加入了乙個attribute authorize 開啟accountcontroller,增加乙個刪除的action 下面是us...