1. 程式人生 > >ASP.NET MVC3實戰系列(一):簡單示例

ASP.NET MVC3實戰系列(一):簡單示例

ASP.NET MVC已經推出時間不短了,已經有很多專案在使用這個優秀的WEB開發框架。因為我們專案每次加人的時候,對MVC都不是特別熟悉,有一些人認為這個非常簡單,導致寫出來的程式完全不是MVC的,所以我就想寫個系列總結一下實戰中的經驗和一些學習的筆記。我們先不談論MVC的好處,等我們寫過一些程式和示例後,再回來談。

首先,我們先用MVC寫一個簡單的ASP.NET MVC3的程式來簡單的瞭解一下。

環境:

VS2010

ASP.NET MVC3

http://www.microsoft.com/web/downloads/platform.aspx 下載Microsoft Web Platform Installer 3.0,在Microsoft Web Platform Installer 3.0上可以線上下載到需要的軟體。

image

示例程式

1. 顯示一個簡單的字串“Hello World”

新建ASP.NET MVC3 Web Application

image

選擇Razor檢視引擎

image

image

按F5啟動應用程式

image

我們看到出錯了,這是因為在MVC裡,請求被Controller處理,現在還沒有任何Controller,下面我們新增一個Controller, 右鍵Controller新增一個HomeController

image

image

修改HomeController裡的Index方法為如下

image

F5執行後如下所示

image

為什麼可以執行成功,這要歸功於ASP.NET MVC的路由機制,我們看一下Global.asax.cs裡的如下程式碼

image

從這行程式碼裡可以看到系統預設請求被路由到HomeController和Index這個Action(MVC裡把Controller裡公有方法稱之為Action,兩者之間是有區別的)。

2. 顯示一個檢視:

如果都像剛才那樣直接寫字串到客戶端,那開發人員肯定瘋了,現在我們顯示一個檢視。先把HomeController裡的Action改為如下程式碼,按F5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 namespace HelloWorld.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } } }

image

根據提示,我們在錯誤提示的任何一個位置新增對應的檔案就可以了,這裡我們在Views/Home資料夾下新增Index.aspx, 在HomeController裡右鍵點選Index方法名,選擇Add View

image

image

點選確定,修改index.aspx為如下內容

image

F5執行,我們看到顯示和之前相同的結果

image

3. 新增動態內容

新增如下程式碼

image

修改Index.aspx檢視為如下

image

F5執行

image

ViewBag是Controller定義的一個動態型別的屬性,意味著你可以給他新增任何屬性,在編譯時動態型別的屬性是不檢查的。

image

4. 強型別檢視

動態型別編譯時不能檢查,開發時沒有隻能提示是意見很不爽的時,下面我們來定義一個強型別的檢視。先定義一個Person類

image

刪除Index.aspx, Ctrl+Shift+B 編譯一下,右鍵Action—>Add View

image

修改Index.aspx

image

我們可以看到強型別的智慧提示

image

F5執行

我們可以看到生成的HTML和頁面

image

在Controller裡新增如下方法

image

提交表單顯示如下,

image

之所以能夠顯示出名字,是因為ASP.NET MVC通過Binder機制把表單Post的資料賦給引數物件對應的屬性,我們可以通過Firebug看一下表單Post的資料

image

5. 新增驗證

修改Person 這個Modal為如下,記得引用紅色標註的名稱空間

image

視圖裡新增如下紅色標註的內容

image

修改Action裡的程式碼如下

image

F5執行,不輸入任何程式碼提交表單

image

至此,我們完成了一個簡單的MVC3的程式,裡面演示的MVC3的一些基本特性。

最後,打個小廣告:西安分公司急聘如下人員,有意者直接聯絡我,左邊側欄有我的聯絡方式,部落格園招聘頻道有詳細描述http://job.cnblogs.com/offer/13800/

基本要求: 
4年以上C#開發經驗, .Net基礎紮實,熟練使用.Net3.5新特性。 
精通ASP.NET Web開發。 
熟練使用WCF. 
熟練使用ORM,LINQ TO SQL /Entity Framework或者NHibernate. 
熟練使用JavaScript, JQuery. 
熟悉Web標準,熟悉HTML&CSS. 
熟悉SQL Server, 熟練掌握T-SQL,儲存過程。 
英語讀寫熟練,可以看懂英文需求,可以和客戶流暢的用英語文字溝通(MSN/Skype) 
良好的編碼習慣。


熟悉下面任意一項優先: 
熟悉敏捷開發者優先 
英語聽說熟練者優先 
熟悉ASP.NET MVC者優先。 
熟悉WPF者優先 
熟悉Silverlight優先 
有系統架構經驗者優先,有單元測試或者TDD經驗者優先。