學習 ASP.NET MVC (第二回)實戰篇

作者: GWPBrian  來源: 博客園  發布時間: 2009-08-18 10:54  閱讀: 6239 次  推薦: 0   原文鏈接   [收藏]  

系列文章導航:

學習 ASP.NET MVC (第一回)理論篇

學習 ASP.NET MVC (第二回)實戰篇

學習 ASP.NET MVC (第三回)實戰篇

學習 ASP.NET MVC (第四回)實戰篇

學習 ASP.NET MVC (第五回)理論篇

 

上篇簡單的了解了ASP.NET MVC的基本概念和基本流程,接下來的幾篇將通過簡單的實例,來看看如何通過ASP.NET MVC創建應用程序。Demo很簡單也很基礎,高手繞過。
  閑話少說,直接進入正題。首先我們要做的就是安裝ASP.NET 1.0。大家可以到CodePlex上下載。
  然后我們用VS2008創建新的ASP.NET MVC項目:

點擊確定后,會提示是否創建一個測試項目,點擊ok即可。

在解決方案中,我們就可以看到ASP.NET MVC給我們創建的好的模板:

默認情況下:
Controls – 放置 Controller 類,處理 URL 請求。
Models – 放置業務實體類,表示和操作數據。
Views – 放置 UI 模板文件,負責展示輸出結果。
Scripts – 放置 Javascript 類庫文件和.js 文件。
Contents – 放置 CSS 和圖像文件,以及其他非動態的、非 Javascript 文件。
App_Data – 放置數據庫文件。
ASP.NET MVC 應用程序不是必須要求這樣的目錄結構。事實上,大型系統的開發人員通常會將應用程序分為多個項目文件,這樣是項目更易于管理(如,數據 Model 類通常在一個單獨的類庫項目中)。默認的項目結構提供了常規的目錄結構,用來保存應用程序更加清晰。
直接運行現有的項目:

當我們點擊log on:
http://localhost/:端口號/{控制器名}/{Action方法名}

有個叫Account的Controller,有個叫LogOn的Action。這樣就請求了登陸頁面:

創建數據庫

這里簡單的創建一個User表,用來存儲用戶的信息。向表中添加一些數據。
創建 Model 模型
在 Model-View-Controller 框架中,Model表示應用程序的數據對象,以及相應的業務領域邏輯,包括數據驗證和業務規則。Model是 MVC 應用程序的核心部分,下面我們會看到 Model的作用。ASP.NET MVC 框架支持使用任意數據訪問技術,開發人員可以選擇大量的.NET 數據訪問技術實現 Model。這里我們選擇LINQ to SQL的方式來實現對數據的訪問。
增加LINQ to SQL 類到項目程序中:在Model文件夾上右鍵--添加新項:

將User表手動拽到管理器中:

接下來我們就可以利用Linq來對數據庫進行操作。我們創建一個UserRepository.cs,封裝對User的增加,刪除,修改的操作。

Code

Model 類集成驗證和業務規則邏輯
項目中我們常常會有業務的驗證和業務的邏輯規則,比如不允許用戶輸入的信息為空之類的,我們在Model文件夾中添加Users.cs。來對User進行驗證:

Code

這里有幾點值得注意:
我們直接對 Users模型類公開 IsValid 屬性和GetRuleViolations() 方法,IsValid 屬性根據驗證和業務規則返回 true 或 false,GetRuleViolations() 則返回
所有錯誤的業務邏輯列表。
我們將class 定義為Partial 到項目中,來實現 IsValid 和 GetRuleViolations()方法。Partial 類用來增加方法/屬性/事件到 VS 設計器生成的類中(如 LINQ to SQL 設計器生成的 Users類),有助于區分我們編寫的代碼。
這里,我們使用 C#的 yield return 特性,返回有序的 RuleViolation 集合。
yield return 語句返回集合的一個元素,并移動到下一個元素上。yield break 可停止迭代。包含 yield 語句的方法或屬性也稱為迭代塊。迭代塊必須聲明為返回 IEnumerator 或 IEnumerable 接口。這個塊可以包含多個 yield return 語句或 yield break 語句,但不能包含 return 語句。
當然這里只是簡單的進行數據的驗證。
到這里,我們就基本上對Users的Model的編寫就基本的完成了。
ok,先在這里,下篇待續。

0
0
 
標簽:ASP.NET MVC
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()