ASP.NET MVC Music Store教程(2):控制器
轉自http://firechun.blog.163.com/blog/static/3180452220110272197830/
在傳統的Web架構中,URL總是映射到磁盤上的文件。例如:一個類似于“/Products.aspx”或“/Products.php”的URL可能由“Products.aspx”或“Products.php”文件來處理。在基于MVC的Web架構中,URL的映射有一些不同,映射到文件被替換成映射到類中的方法,這些類被叫做的“Controllers”(控制 器),由它們來響應和處理HTTP請求、用戶輸入、接收和保存數據,并且決定如何將響應發回到客戶端(顯示HTML,下載文件,重定向URL等)。
添加?HomeController
我們通過添加一個控制器類來開始我們的MVC Music Store應用程序,它將處理鏈接到網站主頁的URL。遵照ASP.NET MVC的命名約定,我們給這個類取名“HomeController”。
在“解決方案資源管理器”中的“Controllers”文件夾上單擊右鍵,選擇“添加->控制器”命令:
?在“添加控制器”對話框中,將默認名稱改為“HomeController“,按“添加”按紐。
?這將創建一個新的文件——HomeController.cs,并且包含下列代碼:
using System;?
?using System.Collections.Generic;?
?using System.Linq;?
?using System.Web;?
?using System.Web.Mvc;?
??
namespace MvcMusicStore.Controllers?
{?
? ? public class HomeController : Controller?
? ? {?
? ? ? ? //?
? ? ? ? // GET: /Home/?
? ? ? ? public ActionResult Index()?
? ? ? ? {?
? ? ? ? ? ? return View();?
? ? ? ? }?
? ? }?
}
為了盡可能簡單地開始,我們用簡單的返回字符串的方法來替換原來的Index方法,我們只需要做兩點簡單修改
- 修改方法的返回類型,由ActionResult改成string
- 修改return語句返回字符串“Hello from home”
- 音樂倉庫的類別列表頁面
- 列出某類別下的所有音樂唱片頁面
- 顯示指定音樂唱片的詳細信息
?using System.Collections.Generic;?
?using System.Linq;?
?using System.Web;?
?using System.Web.Mvc;?
??
namespace MvcMusicStore.Controllers?
{?
? ? public class StoreController : Controller?
? ? {?
? ? ? ? //?
? ? ? ? // GET: /Store/?
? ? ? ? public string Index()?
? ? ? ? {?
? ? ? ? ? ? return "Hello from Store.Index()";?
? ? ? ? }?
? ? ? ? //?
? ? ? ? // GET: /Store/Browse?
? ? ? ? public string Browse()?
? ? ? ? {?
? ? ? ? ? ? return "Hello from Store.Browse()";?
? ? ? ? }?
? ? ? ? //?
? ? ? ? // GET: /Store/Details?
? ? ? ? public string Details()?
? ? ? ? {?
? ? ? ? ? ? return "Hello from Store.Details()";?
? ? ? ? }?
? ? }?
}再次啟動項目并分別在瀏覽下列URL:
- /Store
- /Store/Browse
- /Store/Details
// GET: /Store/Browse?genre=?Disco?
public string Browse(string genre)?
?{?
? ? string message = HttpUtility.HtmlEncode("Store.Browse, Genre = "?
+ genre);?
??
? ? return message;?
?}注意: 我們使用HttpUtility.HtmlEncode方法審核用戶輸入,這可以防止用戶使用類似/Store/Browse?Genre=<script>window.location=’http://hackersite.com’</script>這樣的鏈接對視圖進行JavaScript注入攻擊user 現在,我們來瀏覽/Store/Browse?Genre=Disco下一個修改是讓Details動作讀取并顯示一個名叫“ID”的輸入參數。與上一個方法不同的是,我們不想把ID的值放到QueryString參數中,而是直接把它作為URL的一部份,例如:/Store/Details/5ASP.NET MVC很容易讓我們實現這樣的想法而不需要做任何設置,ASP.NET MVC的默認路由設置把URL中動作方法后面的部份看成一個名叫“ID”的參數,如果你的動作方法有一個叫“ID”的參數,ASP.NET MVC會自動這部份做為參數傳遞。//?
// GET: /Store/Details/5?
public string Details(int id)?
?{?
? ? string message = "Store.Details, ID = " + id;?
??
? ? return message;?
?}運行應用程序并且瀏覽/Store/Details/5看看到目前為止我們做了什么:
- 在VS中創建了一個新的ASP.NET MVC項目
- 討論了ASP.NET MVC應用程序的基本的目錄結構
- 學習了如何使用ASP.NET開發服務器運行Web站點(這部份我沒寫。。。)
- 創建了兩個控制器類:HomeController和StoreController
- 在控制器中添加了動作方法響應URL請求并把文本返回給瀏覽器
轉載于:https://www.cnblogs.com/lonelyxmas/archive/2011/11/17/2252564.html
總結
以上是生活随笔為你收集整理的ASP.NET MVC Music Store教程(2):控制器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Chrome插件】使用FE助手-百度W
- 下一篇: WPF - 自定义标记扩展