前陣子Ruby on Rails流行時,就一直很希望微軟也能推出類似的技術。之後微軟也沒讓人失望,推出了MVC Framework,讓網頁程式設計師多了另一項選擇。而Visual Studio 2010推出後,MVC Framework也來到了2.0版。
本篇文章簡單介紹MVC Framework,之後的文章會再詳細介紹其它的功能。
首先新增一個MVC專案(請不要選到空白專案)。

系統會詢問是否要另外建立一個測試專案,因為本篇文章不會介紹到測試功能,所以選擇”否”。

專案建立好之後,打開HomeController.cs,新增一個Action,程式碼如下圖。
上面的程式碼只有單純的顯示頁面,所以只有一行return View()。
由於Action要有對應的View,所以這邊新增一個View。

這邊照預設值就好。

之後打開MvcTest.aspx,稍微修改一下頁面。

執行結果。

之後再稍做修改,在呼叫MvcTest這個Action時,讓使用者傳遞一個參數,程式碼如下。

在這裡,把id是直接塞進ViewData裡。
之後在View上面取得從Controller塞進去的資料。

執行結果。

或許讀者會好奇,參數為何一定要是id,不能改成其它的名稱,打開Global.asax.cs就能明白一切了。

在Action後面,接的參數就是設定為id。
我們把名稱改成int1,並加入另一個參數int2。

View這裡再稍做修改,這次是把兩個參數相加。

之後再修改Controller。

執行結果。

最後是重要的示範,也就是如何讓使用者上傳資料,在Controller裡再新增一個一樣的method:MvcTest,只是參數要多一個FormCollection的物件,並且在上面多加一行[AcceptVerbs(HttpVerbs.Post)]。

在前面已經有在View裡面加了一個TextBox,id也設定為Text1,之後在Controller裡面直接從form這個變數裡把TextBox的資料給找出來,並且塞進ViewData裡。
在View裡面把ViewData[“Msg”]印出來。

執行結果。

