1. 程式人生 > >Asp.Net MVC4入門指南(2):新增一個控制器

Asp.Net MVC4入門指南(2):新增一個控制器

MVC代表: 模型-檢視-控制器 。MVC是一個架構良好並且易於測試和易於維護的開發模式。基於MVC模式的應用程式包含:

· Models: 表示該應用程式的資料並使用驗證邏輯來強制實施業務規則的資料類。

· Views: 應用程式動態生成 HTML所使用的模板檔案。

· Controllers: 處理瀏覽器的請求,取得資料模型,然後指定要響應瀏覽器請求的檢視模板。

本系列教程,我們將覆蓋所有這些概念,並告訴您如何使用它們來構建應用程式。

首先,讓我們建立一個控制器類。在解決方案資源管理器中,用滑鼠右鍵單擊控制器資料夾,然後選擇“新增控制器“

clip_image001

命名新的控制器為“HelloWorldController”。保留預設的模板為“Empty MVC controller”,並單擊“ 新增“。

clip_image002

請注意,在解決方案資源管理器中會建立一個名為HelloWorldController.cs的新檔案。該檔案會被IDE預設開啟。

clip_image003

用下面的程式碼替換該檔案中的內容。

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)頁面在瀏覽器中的表現如下面的截圖。在上面的方法中,程式碼直接返回了一個字串。你告訴系統只返回一些HTML,系統確實這樣做了!

clip_image004

根據傳入的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] 部分。

clip_image005

讓我們稍微修改一下這個例子,以便可以使用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 會自動將位址列中URL裡的 query string對映到您方法中的引數。

clip_image006

在這兩個例子中,控制器一直在做著MVC中“VC”部分的職能。 也就是檢視和控制器的工作。該控制器直接返回HTML內容。通常情況下,您不會讓控制器直接返回HTML,因為這樣程式碼會變得非常的繁瑣。相反,我們通常會使用一個單獨的檢視模板檔案來幫助生成返回的HTML。讓我們來看看下面我們如何能做到這一點吧。

控制器是MVC中的重要組成部分,有了本節知識的學習,相信大家會更加深入地理解MVC。那麼在MVC開發過程中,除了以上知識之外,還可以藉助哪些工具呢?ComponentOne Studio ASP.NET MVC 是一款針對 MVC 平臺的控制元件包,它與 Visual Studio 無縫整合,完全與 MVC6 和 ASP.NET 5.0 相容,將大幅提高工作效率。

-----------------------------------------------------------------------------------------------------------------------------------------------

譯者注:

本系列共9篇文章,翻譯自Asp.Net MVC4 官方教程,由於本系列文章言簡意賅,篇幅適中,從一個示例開始講解,全文最終完成了一個管理影片的小系統,非常適合新手入門Asp.Net MVC4,並由此開始開發工作。9篇文章為:

1. Asp.Net MVC4 入門介紹

2. 新增一個控制器

3. 新增一個檢視

4. 新增一個模型

5. 從控制器訪問資料模型

6. 驗證編輯方法和編輯檢視

7. 給電影表和模型新增新欄位

8. 給資料模型新增校驗器

9. 查詢詳細資訊和刪除記錄

10.第三方控制元件Studio for ASP.NET Wijmo MVC4 工具應用 

相關閱讀: