MVC代表: *模型-視圖-控制器* 。MVC是一個架構良好并且易于測試和易于維護的開發模式。基于MVC模式的應用程序包含:
· **M**odels: 表示該應用程序的數據并使用驗證邏輯來強制實施業務規則的數據類。
· **V**iews: 應用程序動態生成 HTML所使用的模板文件。
· **C**ontrollers: 處理瀏覽器的請求,取得數據模型,然后指定要響應瀏覽器請求的視圖模板。
本系列教程,我們將覆蓋所有這些概念,并告訴您如何使用它們來構建應用程序。
首先,讓我們創建一個控制器類。在**解決方案資源管理器中**,用鼠標右鍵單擊控制器文件夾,然后選擇“**添加控制器“**。
[](http://images.cnblogs.com/cnblogs_com/powertoolsteam/201211/201211021211242201.png)
命名新的控制器為“HelloWorldController”。保留默認的模板為“Empty MVC controller”,并單擊“ 添加“。
[](http://images.cnblogs.com/cnblogs_com/powertoolsteam/201211/201211021211255723.png)
請注意,在**解決方案資源管理器中**會創建一個名為HelloWorldController.cs的新文件。該文件會被IDE默認打開。
[](http://images.cnblogs.com/cnblogs_com/powertoolsteam/201211/201211021211252069.png)
用下面的代碼替換該文件中的內容。
~~~
using System.Web;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my <b>default</b> action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
~~~
在這個例子中控制器方法將返回一個字符串的HTML。本控制器被命名HelloWorldController代碼中的第一種方法被命名為Index。讓我們從瀏覽器中調用它。運行應用程序(按F5或CTRL + F5)。在瀏覽器的地址欄中輸入路徑“HelloWorld“。(例如,在下面的示例中:[http://localhost:1234/HelloWorld](http://localhost:1234/HelloWorld))頁面在瀏覽器中的表現如下面的截圖。在上面的方法中,代碼直接返回了一個字符串。你告訴系統只返回一些HTML,系統確實這樣做了!
[](http://images.cnblogs.com/cnblogs_com/powertoolsteam/201211/201211021211264511.png)
根據傳入的URL,ASP.NET MVC調用不同的控制器類(和它們之中不同的操作方法)。使用ASP.NET MVC默認的URL路由邏輯格式,以確定哪些代碼會被調用:
`/[Controller]/[ActionName]/[Parameters]`
第一部分的URL確定那個控制器類會被執行。因此 */HelloWorld*映射到HelloWorldController控制器類。第二部分的URL確定要執行控制器類中的那個操作方法。因此*/HelloWorld/Index,*會使得`HelloWorldController`控制器類的Index 方法被執行。請注意,我們只需要瀏覽*/HelloWorld*路徑,默認情況下會調用Index方法。如果沒有明確的指定操作方法,Index方法會默認的被控制器類調用。
瀏覽*http://localhost:xxxx/HelloWorld/Welcome*。Welcome方法會被運行并返回字符串:"This is the Welcome action method...”。 默認的MVC映射為/[Controller]/[ActionName]/[Parameters] 對于這個URL,控制器類是HelloWorld,操作方法是Welcome,您還沒有使用過URL的[Parameters] 部分。
[](http://images.cnblogs.com/cnblogs_com/powertoolsteam/201211/201211021211268590.png)
讓我們稍微修改一下這個例子,以便可以使用URL傳遞一些參數信息給控制器類(例如, */HelloWorld/Welcome?name=Scott&numtimes=4*)。改變您的Welcome 方法來包含兩個參數,如下所示。需要注意的是,示例代碼使用了C#語言的可選參數功能,numTimes參數在不傳值時,默認值為1。
~~~
public string Welcome(string name, int numTimes = 1) {
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}
~~~
運行您的應用程序并瀏覽此URL(*http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4)*。你可以對參數name 和numtimes 嘗試不同的值。[ASP.NET MVC model binding system](http://odetocode.com/Blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx) 會自動將地址欄中URL里的 query string映射到您方法中的參數。
[](http://images.cnblogs.com/cnblogs_com/powertoolsteam/201211/201211021211276364.png)
在這兩個例子中,控制器一直在做著MVC中“VC”部分的職能。 也就是視圖和控制器的工作。該控制器直接返回HTML內容。通常情況下,您不會讓控制器直接返回HTML,因為這樣代碼會變得非常的繁瑣。相反,我們通常會使用一個單獨的視圖模板文件來幫助生成返回的HTML。讓我們來看看下面我們如何能做到這一點吧。
-----------------------------------------------------------------------------------------------------------------------------------------------
譯者注:
本系列共9篇文章,翻譯自Asp.Net MVC4 官方教程,由于本系列文章言簡意賅,篇幅適中,從一個示例開始講解,全文最終完成了一個管理影片的小系統,非常適合新手入門Asp.Net MVC4,并由此開始開發工作。9篇文章為:
1. Asp.Net MVC4 入門介紹
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4)
· 譯文地址:[http://www.cnblogs.com/powertoolsteam/archive/2012/11/01/2749906.html](http://www.cnblogs.com/powertoolsteam/archive/2012/11/01/2749906.html)
2. 添加一個控制器
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller)
· 譯文地址:[http://www.cnblogs.com/powertoolsteam/archive/2012/11/02/2751015.html](http://www.cnblogs.com/powertoolsteam/archive/2012/11/02/2751015.html)
3. 添加一個視圖
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view)
· 譯文地址:[http://www.cnblogs.com/powertoolsteam/archive/2012/11/06/2756711.html](http://www.cnblogs.com/powertoolsteam/archive/2012/11/06/2756711.html)
4. 添加一個模型
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model)
· 譯文地址:
5. 從控制器訪問數據模型
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller)
· 譯文地址:
6. 驗證編輯方法和編輯視圖
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-methods-and-edit-view](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-methods-and-edit-view)
· 譯文地址:
7. 給電影表和模型添加新字段
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table)
· 譯文地址:
8. 給數據模型添加校驗器
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-validation-to-the-model](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-validation-to-the-model)
· 譯文地址:
9. 查詢詳細信息和刪除記錄
· 原文地址:[http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-details-and-delete-methods](http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-details-and-delete-methods)
· 譯文地址:
- 前言
- 入門介紹
- 添加一個控制器
- 添加一個視圖
- 添加一個模型
- 從控制器訪問數據模型
- 驗證編輯方法和編輯視圖
- 給電影表和模型添加新字段
- 給數據模型添加校驗器
- 查詢詳細信息和刪除記錄
- 第三方控件Studio for ASP.NET Wijmo MVC4 工具應用
- ASP.NET MVC 5-開始MVC5之旅
- 控制器
- 視圖
- 將數據從控制器傳遞給視圖
- 添加一個模型
- 創建連接字符串(Connection String)并使用SQL Server LocalDB
- 從控制器訪問數據模型
- 驗證編輯方法(Edit method)和編輯視圖(Edit view)
- 給電影表和模型添加新字段
- 給數據模型添加校驗器
- 查詢Details和Delete方法