熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET MVC 4框架揭秘:Action的執行(2)

2013-11-13 12:32:12  來源: .NET編程 

    Action的執行(

  在ControllerActionInvoker的InvokeAction方法中我們直接將傳入的Action名稱作為方法名從Controller類型中得到表示Action操作的MethodInfo對象然後遍歷MethodInfo的參數列表對於每一個ParameterInfo對象我們將它的Name和ParameterType屬性表示的參數名稱和類型連同創建的ControllerContext作為參數調用ModelBinder的BindModel方法並得到對應的參數值最後通過反射的方式傳入參數列表並執行MethodInfo

  和真正的ASPNET MVC一樣定義在Controller的Action方法返回一個ActionResult對象我們通過執行它的Execute方法實現對請求的響應

  ActionResult

  我們為具體的ActionResult定義了一個ActionResult抽象基類如下面的代碼片段所示該抽象類具有一個參數類型為ControllerContext的抽象方法ExecuteResult我們最終對請求的響應就實現在該方法中

  public abstract class ActionResult

  {

  public abstract void ExecuteResult(ControllerContext context)

  }

  在之前創建的例子中Action方法返回的是一個類型為RawContentResult的對象顧名思義RawContentResult將初始化時指定的內容(字符串)原封不動地寫入針對當前請求的HTTP響應消息中具體的實現如下所示

  public class RawContentResult: ActionResult

  {

  public string RawData { get; private set; }

  publicRawContentResult(string rawData)

  {

  RawData = rawData;

  }

  public override void ExecuteResult(ControllerContext context)

  {

  contextRequestContextHttpContextResponseWrite(thisRawData)

  }

  }

       返回目錄ASPNET MVC 框架揭秘

       編輯推薦

       ASP NET開發培訓視頻教程

       Microsoft NET框架程序設計視頻教程

       Java程序性能優化讓你的Java程序更快更穩定

       Visual C++音頻/視頻技術開發與實戰


From:http://tw.wingwit.com/Article/program/net/201311/16103.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.