自学MVC——添加一个控制器
MVC概念???????????????????????????????????????????????????????????????????????????????????? ? ???
MVC的含義是“模型-視圖-控制器”。MVC是一個架構良好并且易于測試盒易于維護的開發模式?;贛VC模式的應用程序包含:
Models:表示該應用程序的數據并使用驗證邏輯來強制實施業務規則的數據類。
Views:應用程序動態生成HTML所使用的模板文件。
Controllers:處理瀏覽器的請求,取得數據模型,然后指定要響應瀏覽器的視圖模板。
本系列將覆蓋所有這些概念,并告訴你如何使用他們來構建應用程序。
添加一個控制器????????????????????????????????????????????????????????????????????????????? ????
讓我們開始創建一個控制器類。
在解決方看資源管理器里,在“Controllers”上,右擊選擇 新建->控制器,并輸入控制器的名稱“HelloWorldController”,模板保持默認的選項(“空MVC控制器”),點擊添加按鈕,新增的控制器類代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace Mvc_Movie.Controllers {public class HelloWorldController : Controller{//// GET: /HelloWorld/public ActionResult Index(){return View();}} }?修改代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace Mvc_Movie.Controllers {public class HelloWorldController : Controller{public string Index(){return "這是我的<b>默認</b>方法";}public string Welcome(){return "這是歡迎方法";}} }?在這個例子中控制器方法將返回一個字符串的HTML。本控制器被命名為HelloWorldController,代碼中的第一個方法被命名為Index。讓我們從瀏覽器中調用它。運行應用程序(按F5或者Ctrl + F5)。在瀏覽器的地址欄中輸入路徑“HelloWorld”(例如,在下面的事例:http://localhost:54454/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:54454/HelloWorld/Welcome。Welcome方法會被執行并返回字符串:“這是歡迎方法”。默認的MVC映射為?默認的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:54454/HelloWorld/Welcome?name=Tom&num=4),得到結果為“你好,Tom,4次”。你可以對參數name 和num 嘗試不同的值。 ASP.NET?MVC?模型綁定機制 會自動將地址欄中URL里的 查詢字符串映射到您方法中的參數。
學習到這里,善于思考的你可能會做以下嘗試
public string Welcome(string name){return "你好," + name ;}?
在瀏覽器中輸入:http://localhost:54454/HelloWorld/Welcome/Tom,結果發現輸出為“你好,”,并沒有輸出期望的“你好,Tom”。
不是/[Controller]/[ActionName]/[Parameters]嗎?此處為什么無法獲取url中傳入的參數呢?此處跟路由約定有關,默認情況下,參數標識符為ID,方能正確傳入,如下所示修改
public string Welcome(int ID) {return "ID:" + ID; }?在這兩個例子中,控制器一直在做著MVC中“VC”部分的職能, 也就是視圖和控制器的工作。該控制器直接返回HTML內容。通常情況下,您不會讓控制器直接返回HTML,因為這樣代碼會變得非常的繁瑣。相反,我們通常會使用一個單獨的視圖模板文件來幫助生成返回的HTML。讓我們來看看下面我們如何能做到這一點吧。
轉載于:https://www.cnblogs.com/jackbase/articles/3501977.html
總結
以上是生活随笔為你收集整理的自学MVC——添加一个控制器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 2 中文乱码解决方案:
- 下一篇: 回溯法实现n份作业分配给n个人完成的问题