1. 程式人生 > >從零開始學習ASP.NET MVC 1.0 (一)

從零開始學習ASP.NET MVC 1.0 (一)

《從零開始學習ASP.NET MVC 1.0》 文章導航

通過對MVC的學習,我們可以看到MVC有如下特點:
1) 業務處理與顯示分離:ASPX頁面與CS程式碼徹底分離。更好的複用和維護。
2) 伺服器端的表單控制元件不再被提倡使用,取而代之使用傳統的input,或直接讓Html.TextBox生成控制元件標籤。
3) 沒有了事件驅動模型。在ASP.NET MVC中,當某個按鈕被點選,你不要再習慣性想到應該在相應的aspx.cs中有

個Click處理方法,你應該想到的是該有某個Controller中有個Action來處理這個事件。
4) 沒有了資料繫結。如果你習慣了GridView的資料繫結,在ASP.NET MVC中則需要改變思路,你自己動手解決。
5) 增加了地址重寫。MVC的Routing元件讓我們可以很好的進行URL路由處理。
6) 總體來看,可以理解MVC是基於Web Form的一種程式設計方式模型擴充套件,是一種表示層的程式設計模型方案。

基於三層架構的MVC模式應用的完整示例專案原始碼下載

 今天正式開始自學MVC,開始萬里長征的第一步,爭取每天都有所進步。下面是我學習MVC的一些筆記,想讓自己對MVC有個簡單清晰地認識,也希望對於沒有接觸過MVC框架的園友有所幫助吧!(以下總結僅為個人的學習整理)

一.準備工作。

1.安裝VS2008.

2.下載MVC安裝包。(如果之前下載安裝過不同版本的安裝包,需要先解除安裝再安裝。)

二.開啟VS2008建立MVC專案。

1.預設應用工程的作用。

2.訪問路徑:http://IP地址:埠號/ControllerName/ActionName

注意:修改了cs型別的檔案要重新生成。

三.MVC執行原理

客戶端向Controller發起請求,呼叫Controller的路徑函式。再將要顯示的資料放在Views中,再在頁面呈現。

而要與資料庫打交道的時候才使用到Models,運用ORM(物件關係模型)很多情況在使用LinQ...。

四.實現Controller與Action之間的傳值。

物件一:ViewDate

1)簡單的字串:

Controller:

View:

2)簡單型別:

Controller:

Views:

3)簡單物件。

賦值:ViewDate["Models"]=users;

取值:<% User user=ViewDate["Models"] as Users; %>或者 賦值用return View(users); 取值:頁面引用該型別,再ViewDate.Models.屬性值.

物件二:TempDate(與ViewDate不同的是,可以跨Action傳值一次。用法大致與ViewDate一致)

常用之處:當一個Action中需要將Error丟擲到另一個Action顯示時。

五.重定向

1.Action中的的重定向。

1).在同一個Controller中:return RedirectToAction("ActionName");

2).不在同一個Controller中:return RedirectToAction("ActionName","ControllerName");

2.Global.asax檔案中定義對映訪問路徑的規則。

六.Filter過濾器(在Action或者return View()之前/之後執行)

1.作用:

2.建立過濾器:

1)新建cs檔案,繼承ActionFilterAtrribute類.

2)控制Action執行之前:重寫OnActionExecuting。一般使用者是否登入,只有登入才能進入Action.

  控制Action執行之後: 重寫OnActionExecuted.

  控制return View()之前:OnResultExeccuting.

  控制return View()之前:OnResultExeccuted.

3)使用Filter:如果是整個Controller中得Action都需使用,則在Controller上填上屬性[Filter檔案路徑];如果只有某一個Action需要,則在該Action上新增Filter檔案路徑。

七.Helper(MVC不推薦使用伺服器端控制元件,所以需要使用Helper顯示資料)

1.HtmlHelper

1)超連結:<%=Html.ActionLink("連線顯示文字","ActionName","ControllerName")%>

2)文字框,單選按鈕,按鈕...:<%=Html.TextBox("ID")%>  <%=Html.SubmitButton("id或name","顯示文字")%> <%=Html.Password("ID")%>

3)輸出時編碼:<%=Html.Encode("")%>

4)單選框:

     <% foreach(string r in Html.RadioButtonList("name屬性",資料來源)) {%>   

         <%=s%>

     <%}%>

5)複選框:

    <% Html.CheckBox("name屬性",值) %>複選

注意:Action中接收單選框或者複選框的值一定要保證Name與引數名一致。如果需要傳遞的引數有很多個,可以採用陣列的方式接收。

2.UrlHelper

1)<%=Url.Action("ActionName","ControllerName",

         new {word="傳值"},new {@class="連結中引用的方法"}    //匿名函式

   ) %>

2)<%=Url.Content("//顯示檔案的路徑")%>

八.QueryString傳值。(略)

九.表單生成和Post傳值.

<% using(Html.Form("ControllerName","ActionName",FormMethod.Post)) {%>

   //表單內容...

<% }%>

Action獲取表單:   Request.Form["表單元素ID"]或者直接在Action方法中新增引數。(注意:引數名要和表單元素ID一致.)

十.UpdateModel(Model,Request.Form.AllKeys);

不僅可以使用者Post方式提交,也可以用於Get方式提交。

相對於Request.QueryString/Request.Form[".."]更具有智慧性。

練就堅定的靈魂,爭取蛻變。 成果案例:

===================================

基於三層架構的MVC模式應用示例原始碼

2009-6-8 21:30:54     (被閱讀6099次)

ASP.NET MVC是微軟官方提供的開源MVC框架. 在經過了漫長的preview和2個RC版本後, 終於釋出了1.0正式版本。自從微軟釋出ASP.NET MVC框架1.0正式版,對於MVC的討論就不絕於耳。
下面是基於原來標準三層結構,做一個基於三層架構的MVC模式應用的完整示例專案,開放原始碼。
該專案涉及如下幾項要點應用:
 1) 整個解決方案基於標準的三層結構。
 2) 表示層採用MVC模式。
 3) 資料的增、刪、改、查操作示例。
 4) 基於MVC的列表資料顯示及分頁處理。
 5) Linq的應用等。


搭建MVC開發環境:

-81da479ab0d7

84E525B5CE61&displaylang=zh-cn

35e00103cb4b&displaylang=en

通過對MVC的學習,我們可以看到MVC有如下特點:
1) 業務處理與顯示分離:ASPX頁面與CS程式碼徹底分離。更好的複用和維護。
2) 伺服器端的表單控制元件不再被提倡使用,取而代之使用傳統的input,或直接讓Html.TextBox生成控制元件標籤。
3) 沒有了事件驅動模型。在ASP.NET MVC中,當某個按鈕被點選,你不要再習慣性想到應該在相應的aspx.cs中有

個Click處理方法,你應該想到的是該有某個Controller中有個Action來處理這個事件。
4) 沒有了資料繫結。如果你習慣了GridView的資料繫結,在ASP.NET MVC中則需要改變思路,你自己動手解決。
5) 增加了地址重寫。MVC的Routing元件讓我們可以很好的進行URL路由處理。
6) 總體來看,可以理解MVC是基於Web Form的一種程式設計方式模型擴充套件,是一種表示層的程式設計模型方案。

基於三層架構的MVC模式應用的完整示例專案原始碼下載