ASP.NET MVC3 快速入門–第二節 添加一個控制器

來源:互聯網
上載者:User

MVC的全稱為model-view-controller(模型-視圖-控制器)。MVC是一種開發應用程式的模式,這個模式已經具有了很好的架構架構,並且十分容易維護。使用MVC開發出來的應用程式一般包括以下幾塊內容:

  • 控制器(Controller):控制器類處理用戶端向Web應用程式發出的請求,擷取資料,並指定返回給用戶端,用來顯示處理結果的視圖。
  • 模型(Model):模型類代表了應用程式的資料,這些資料通常具有一個資料驗證邏輯,用來使得這些資料必須符合商務邏輯。
  • 視圖(View):視圖類是Web應用程式中用來產生並顯示HTML格式的伺服器端對用戶端請求的響應結果的模板檔案。

在本教程中,將全面介紹這些概念,並且向你展示如何利用它們來搭建一個應用程式。

    首先,讓我們來建立一個控制器(controller)類。在方案總管中,滑鼠右擊Controllers檔案夾,並且點擊添加-〉控制器,2-1所示。

圖2-1 添加控制器

    在彈出的“添加控制器”對話方塊中,將控制器命名為“HelloWorldController”,然後點擊添加按鈕,2-2所示。

圖2-2 命名控制器

    觀察方案總管中新增加了一個檔案,名字為HelloWorldController.cs,並且該檔案呈開啟狀態,2-3所示。

    修改開啟的HelloWorldController.cs檔案,在HelloWorldController類中,建立如代碼清單2-1中所示的兩個方法,控制器將返回一個HTML格式的字串。

    代碼清單2-1 在控制器中建立方法

public class HelloWorldController : Controller

{

    //

    // GET: /HelloWorld/

 

    public string Index()

    {

        return "這是我的<b>預設</b>action...";

    }

    //

    // GET: /HelloWorld/Welcome/

    public string WelCome()

    {

        return "這是我的Welcome方法...";

    }

}

    在這個修改後的HelloWorldController控制器中,第一個方法名為Index。現在讓我們從瀏覽器中調用該方法。運行應用程式(按F5鍵或Ctrl+F5鍵),在開啟的瀏覽器中的地址欄後面,添加“HelloWorld”路徑(譬如,在我的電腦上,瀏覽器中地址為http://localhost:4423/HelloWorld),畫面顯示2-4所示。由於在Index方法中,直接返回了一個HTML格式的字串,所以在瀏覽器中將該字串顯示出來。

 

圖2-4 HelloWorldController控制器中Index方法的運行結果

在ASP.NET MVC中,可以根據瀏覽器中的輸入地址來調用不同的控制器或控制七種不同的方法。ASP.NET MVC的預設的映射邏輯使用如下所示的格式來決定應該調用什麼控制器或控制器中的什麼方法。

/[Controller]/[ActionName]/[Parameters]

    URL地址的第一部分決定調用哪個控制器類,所以“/HelloWorld”映射到HelloWorldController控制器類。第二部分決定調用控制器中的哪個方法。所以“/HelloWorld/Index”將會調用HelloWorldController控制器類的Index方法。由於Index方法是控制器類的預設方法(可以另外指定控制器類的預設方法),所以也可只輸入“/HelloWorld”來調用該方法。

    在瀏覽器的地址欄中,輸入“http://localhost:xxxx/HelloWorld/Welcome”,將會調用HelloWorldController控制器類的Welcome方法,該方法返回“這是我的Welcome方法...”文字,所以瀏覽器中顯示該文字,2-5所示。

圖2-5 HelloWorldController控制器中Welcome方法的運行結果

    接下來,讓我們修改Welcome方法,以便在URL地址欄中可以傳遞一些參數給該方法(例如:/HelloWorld/Welcome?name=Scott&numtimes=4)。修改後的代碼如下所示。注意這裡我們使用了C#的選擇性參數,當URL地址中沒有使用numtimes參數時,該參數被預設設定為1。

public string Welcome(string name,int numTimes=1)

{

    return HttpUtility.HtmlEncode("Hello " + name + ",NumTimes is:" + numTimes);

}

    運行該應用程式,在瀏覽器中輸入“http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4”,運行結果顯示2-6所示。瀏覽器自動將URL地址欄中的參數映射成Welcome方法中的傳入參數。


圖2-6 在Welcome方法中使用參數

    到現在為止,我們展示了MVC中的“VC”(視圖與控制器)部分的工作機制,控制器返回HTML字串。很顯然大多數情況下你不想讓控制器直接返回HTML字串,因為那樣的話編碼起來就太麻煩了。所以我們需要使用不同的視圖模板檔案來協助產生HTML格式的分頁檔,在下一節中讓我們來看一下如何在ASP.NET MVC3中使用視圖。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.