02、添加一個控制器

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

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

· Views: 應用程序動態生成 HTML所使用的模板文件。

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

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

首先,讓我們創建一個控制器類。在解決方案資源管理器中,用鼠標右鍵單擊控制器文件夾,然後選擇“添加控制器“

clip_image001

命名新的控制器爲“HelloWorldController”。保留默認的模板爲“Empty MVC controller”,並單擊“ 添加“。

clip_image002

請注意,在解決方案資源管理器中會創建一個名爲HelloWorldController.cs的新文件。該文件會被IDE默認打開。

clip_image003

用下面的代碼替換該文件中的內容。

usingSystem.Web;
usingSystem.Web.Mvc; 
   
namespaceMvcMovie.Controllers 
    publicclassHelloWorldController : Controller 
    
        // 
        // GET: /HelloWorld/ 
   
        publicstringIndex() 
        
            return"This is my <b>default</b> action..."
        
   
        // 
        // GET: /HelloWorld/Welcome/ 
   
        publicstringWelcome() 
        
            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。

publicstringWelcome(stringname,intnumTimes = 1) {
     returnHttpUtility.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。讓我們來看看下面我們如何能做到這一點吧。

 

 

原文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/02/2751015.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章