控制器(Controller) – ASP.NET MVC 4 系列

       建立一個 ASP.NET MVC 4 Web Application 項目,將程序命名爲 MvcMusicStore,以下圖:瀏覽器

image

image

image

控制器

       MVC 模式中,控制器主要負責響應用戶的輸入、而且在響應時修改模型、提供相關視圖的輸出數據。app

       請求的 URL 首先被路由機制截獲,以決定實例化哪個控制器,調用哪一個操做方法,並未該方法提供須要的參數。而後,控制器的方法決定使用哪一個視圖,並對該視圖進行渲染spa

       添加一個新的 Empty 控制器,命名爲 StoreController:3d

image

image

       建立 Browse、Details 操做方法,並將 3 個方法的返回值由 ActionResult 改成 String,並運行查看效果:code

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()";
    }
}

image

       儘管在 ASP.NET MVC 中模型和視圖很是有用,但控制器纔是真正的核心。每個請求都必須經過控制器處理,然而其中有些請求是不須要模型和視圖的blog

       修改 Browse 方法以下:ip

// GET: /Store/Browse?genre=?Disco
public string Browse(string genre)
{
    string message = HttpUtility.HtmlEncode("Store.Browse,Genre = " + genre);
    return message;
}

image

       HttpUtility.HtmlEncode() 來預處理用戶輸入,這樣能阻止用戶用連接向視圖注入 JavaScript 代碼或 HTML 標記,好比 /Store/Browse?Genre=<script>window.location='http://hacker.example.com'</script>路由

       修改 Details 方法,使其讀取和顯示一個名爲 ID 的輸入參數,這裏將 ID 值嵌入到 URL 中:字符串

// GET: /Store/Details/5
public string Details(int id)
{
    string message = "Store.Details, ID = " + id;
    return message;
}

image

       控制器操做感受就像是 Web 瀏覽器直接調用控制器類中的方法。類、方法和參數都被具體化爲 URL 中的特定路徑片斷或查詢字符串。get

相關文章
相關標籤/搜索