ASP.NET MVC控制器Controller中參數


前述文章參見: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視圖這樣的事項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM