Asp.Net MVC4.0 官方教程 入門指南之二–添加一個控制器

來源:互聯網
上載者:User

MVC概念

MVC的含義是 “模型-視圖-控制器”。MVC是一個架構良好並且易於測試和易於維護的開發模式。基於MVC模式的應用程式套件組合含:

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

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

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

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

添加控制器

讓我們開始建立一個控制器類。

在方案總管裡,右鍵點擊“Controllers”,選擇“建立”-》“控制器……”,輸入控制器名稱“HelloWorldController”,模板保持預設的選項(“空MVC控制器”),點擊“添加”按鈕,新增的控制器類代碼如下: 

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MvcMovie.Controllers{    public class HelloWorldController : Controller    {        //        // GET: /HelloWorld/        public ActionResult Index()        {            return View();        }    }}

修改代碼如下:

namespace MvcMovie.Controllers{    public class HelloWorldController : Controller    {                public string Index()        {            return "這是我的<B>預設</B>方法";        }        public string Welcome()        {            return "這是歡迎方法";        }    }}

在這個例子中控制器方法將返回一個字串的HTML。本控制器被命名為HelloWorldController,代碼中的第一個方法被命名為Index。讓我們從瀏覽器中調用它。運行應用程式(按F5或CTRL + F5)。在瀏覽器的地址欄中輸入路徑“HelloWorld“(例如,在下面的樣本中:http://localhost:5279/HelloWorld)。在上面的方法中,代碼直接返回了一個字串。你告訴系統只返回一些HTML,系統確實這樣做了!

根據傳入的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方法會被運行並返回字串:"這是歡迎方法”。 預設的MVC映射為/[Controller]/[ActionName]/[Parameters] ,對於這個URL,控制器類是HelloWorld,操作方法是Welcome,您還沒有使用過URL的[Parameters] 部分。

讓我們稍微修改一下這個例子,以便可以使用URL傳遞一些參數資訊給控制器類(例如, /HelloWorld/Welcome?name=Tom&num=4)。改變您的Welcome 方法來包含兩個參數,如下所示。需要注意的是,範例程式碼使用了C#語言的選擇性參數功能,num參數在不傳值時,預設值為1。

  public string Welcome(string name,int num=1)        {            return "你好," + name + "," + num + "次";        }

運行您的應用程式並瀏覽此URL(http://localhost:xxxx/HelloWorld/Welcome?name=Tom&num=4),得到結果為“你好,Tom,4次”。你可以對參數name 和num 嘗試不同的值。 ASP.NET MVC 模型繫結機制 會自動將地址欄中URL裡的 查詢字串映射到您方法中的參數。

譯者註:學習到這裡,善于思考的讀者會可能做以下嘗試

 public string Welcome(string name) {   return "你好," + name ; }

在瀏覽器中輸入:http://localhost:5279/HelloWorld/Welcome/Tom,結果發現輸出為“你好,”,並沒有輸出期望的“你好,Tom”。

不是/[Controller]/[ActionName]/[Parameters]嗎?此處為什麼無法擷取url中傳入的參數呢?此處跟路由約定有關,預設情況下,參數標識符為ID,方能正確傳入,如下所示修改

public string Welcome(int ID){   return "ID:" + ID;}

此問題此處一提,讀者可不用深究,日後自然有介紹其原理的地方。 

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

 

本教程所有文章導航

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

原文供9篇文章,譯者將其中第6篇拆成了2篇

1. Asp.Net MVC4 入門介紹

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/03/2800210.html

2. 添加一個控制器

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/04/2801949.html

3. 添加一個視圖

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/04/2801988.html

4. 添加一個模型

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/05/2803012.html

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

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/05/2803429.html

6. 查看Edit方法和Edit視圖

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-methods-and-edit-view

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/05/2804100.html

       http://www.cnblogs.com/seawaving/archive/2012/12/06/2804590.html

7. 為Movie模型和庫表添加欄位

· 原文地址: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.cnblogs.com/seawaving/archive/2012/12/06/2805401.html

8. 為模型添加驗證

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-validation-to-the-model

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/06/2806322.html

9. 查看Detail和Delete方法

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-details-and-delete-methods

· 譯文地址:http://www.cnblogs.com/seawaving/archive/2012/12/10/2811064.html

 

相關文章

聯繫我們

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