ASP.NET MVC 入門4、Controller與Action

來源:互聯網
上載者:User

標籤:style   class   blog   code   http   tar   

  1. Controller類繼承自ControllerBase類, ControllerBase類實現了IController介面.
  2. ControllerBase類實現了Exceute方法, 當URL路由匹配到Controller後,就會執行Excecute方法進行Controller的處理.
  3. ControllerBase類還定義了抽象的ExcecuteCore方法,當Execute執行完畢後就會執行ExecuteCore方法.
  4. ControllerBase類還定義了三個核心的屬性 TempData, ViewData.
  5. Controller繼承了ControllerBase外, 還實現了一系列的Filter介面.
  6. asp.net mvc應用程式URL都是映射到Controller中的某個Action中,由Action處理邏輯並返回View.
  7. Controller中的Public方法都被當做是Action方法, Action方法通常會返回ActionResult結果.
  8. 預設情況Action方法的名稱就是這個Action的Action名, Action名就是Route中匹配Action方法的URL部分. 例如:Home/Index     Index就是Action名.
  9. Action方法預設匹配同名的Action, 但也可以自己定義,通過ActionNameAttribute使Action方法匹配指定名稱的Action.
  10. Action方法還可以通過AcceptVerbsAttribute讓其匹配Action指定的HttpMethod.(見下面程式碼片段)
  11. 如果要為一個Public方法設定為不是Acion方法,就需要為這個Public方法指定NonAction的Attribute.
  12. Aciton方法中的參數必須和Route中指定的參數名稱相同, 當訪問URL時, URL參數部分值會自動傳遞給Action方法的參數.
  13. Controller的邏輯處理中可能會需要用到通用的部分,比如為使用者列印錯誤資訊操作, 那麼我們可以自己通過繼承Controller,實現自己的基類.

    Action方法返回ActionResult類型的結果。ASP.NET MVC為我們提供了幾種ActionResult的實現,如下:

    當然我們也可以自定一個我們的ActionResult返回給用戶端,例如一個RssResult。

14.Controller的邏輯處理中可能會需要用到通用的部分,比如為使用者列印錯誤資訊操作, 那麼我們可以自己通過繼承Controller,實現自己的基類.

[AcceptVerbs("GET")]public ActionResult Setting(){    throw new NotImplementedException();} [ActionName("Setting"), AcceptVerbs("POST")]public ActionResult SaveSetting(){    throw new NotImplementedException();}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.