跟互聯力量學Asp.net MVC3-快速入門

來源:互聯網
上載者:User

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

控制器(Controller):控制器類處理用戶端向Web應用程式發出的請求,擷取資料,並指定返回給用戶端,用來顯示處理結果的視圖。

模型(Model):模型類代表了應用程式的資料,這些資料通常具有一個資料驗證邏輯,用來使得這些資料必須符合商務邏輯。

視圖(View):視圖類是Web應用程式中用來產生並顯示HTML格式的伺服器端對用戶端請求的響應結果的模板檔案。

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

首先,讓我們來建立一個控制器(controller)類。在方案總管中,滑鼠右擊Controllers檔案夾,並且點擊添加-〉控制器。在彈出的“添加控制器”對話方塊中,將控制器命名為“HelloWorldController”,然後點擊添加按鈕,。

觀察方案總管中新增加了一個檔案,名字為HelloWorldController.cs,並且該檔案呈開啟狀態,修改開啟的HelloWorldController.cs檔案,在HelloWorldController類中,建立如代碼清單2-1中所示的兩個方法,控制器將返回一個HTML格式的字串。

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

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

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

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

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

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

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

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

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

添加一個視圖

在本節中我們修改HelloWorldController類,以便使用視圖來向用戶端展示HTML格式的響應結果。

我們使用ASP.NET MVC3中新增的Razor視圖引擎來建立視圖。Razor視圖模板檔案的尾碼名為.cshtml,它提供了一種簡潔的方式來建立HTML輸出資料流。Razor視圖大大減少了在書寫視圖模板檔案時所需要輸入的字元,提供了一個最快捷,最簡便的編碼方式。

這裡,我們在HelloWorldController類的Index方法中添加使用一個視圖。在修改前的Index方法中返回一個字串,我們修改這個方法來使它返回一個視圖,代碼如下所示。

public ActionResult Index()

{

return View();

}

這段代碼錶示Index方法使用一個視圖模板來在瀏覽器中產生HTML格式的分頁檔。接著,讓我們來添加一個Index方法所使用的視圖模板。在Index方法中點擊滑鼠右鍵,然後點擊“添加視圖”,將會彈出一個“添加視圖”對話方塊。

在該對話方塊中,不做任何修改,直接點擊添加按鈕,觀察方案總管中,在MvcBooks項目下的Views檔案夾下建立了一個HelloWorld檔案夾,並且在該檔案夾中建立了一個Index.cshtml檔案,同時該檔案呈開啟狀態, 讓我們在該檔案中追加一些文字,代碼如代碼清單3-1所示。

代碼清單3-1 Index.cshtml視圖模板檔案

運行應用程式,輸入地址“http://localhost:xxxx/HelloWorld”。由於在Index方法中並沒有做任何事情,只是簡單地一行代碼—“return View()”,該行代碼錶示我們使用一個視圖模板檔案來在瀏覽器中展示響應結果。因為我們並沒有顯式指定使用哪個視圖模板檔案,所以使用了預設的Views檔案夾下的HelloWorld檔案夾下的Index.cshtml視圖模板檔案。該視圖模板檔案中只有簡單的兩行文字,在瀏覽器中的顯示結果。

看上去還不錯,但是請注意,該網頁的標題為“首頁”,但是網頁中的大標題文字卻為“我的MVC應用程式”,需要修改一下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.