前述文章參見:ASP.NET MVC控制器Controller
-
緒論
之前的控制器返回的均為常量字符串,接下來展示如何獲取請求傳來的參數,而返回“動態”的字符串。 -
可以在操作方法Browse添加一個string類型的genre參數,以實現獲取請求傳來的字符串值。當這個方法被調用時,ASP.NET MVC可以自動將名為“genre”的查詢字符串或者表單提交參數傳遞給Browse操作方法。
public string Browse(string genre) { string message = HttpUtility.HtmlEncode("Store.Browse,Genre=" + genre); return message; }
可以瀏覽到/Store/Browse?genre=4查看效果(如下圖),應該返回Store.Browse,Genre=4。注意:這里之所以使用HttpUtility.HtmlEncode預處理用戶輸入,這是為了防止用戶注入Javascript或者HTML代碼。

-
類似上面修改Browse方法那樣,修改Details方法,添加一個int類型的id參數,如下:
public string Details(int id) { string message = HttpUtility.HtmlEncode("Store.Details,ID=" + id); return message; }可以瀏覽到/Store/Details/4查看效果,可以發現Details方法獲取到了請求傳來的參數4,這是因為ASP.NET MVC的默認路由規定,將操作方法名稱后面的URL的字符作為一個參數,該參數的名稱為ID,如果方法有名為ID的參數,那么ASP.NET MVC將自動將這些字符作為參數傳遞過來。

-
總結
1.路由將URL映射到控制器中的方法,並且ASP.NET MVC使得路由的實現細節對開發者是透明的
2.控制器將視圖作為字節序列(通常為HTML)返回給瀏覽器
3.實際上,控制器很少返回原始的字符串,它通常返回合適的ActionResult來處理類似HTTP狀態碼,HTML視圖這樣的事項
