MyMVC架構處理傳回值的時機是在ExecuteAction方法中(前面有那段代碼)。
這裡只做個簡單的補充說明。
我為Action的結果定義了一個介面:
public interface IActionResult{ void Ouput(HttpContext context);}
架構內實現了4種ActionResult:
/// <summary>/// 表示一個使用者控制項結果(使用者控制項將由架構執行)/// </summary>public sealed class UcResult : IActionResult/// <summary>/// 表示一個重新導向的結果/// </summary>public sealed class RedirectResult : IActionResult/// <summary>/// 一個Json對象結果/// </summary>public sealed class JsonResult : IActionResult/// <summary>/// 表示一個頁面結果(頁面將由架構執行)/// </summary>public sealed class PageResult : IActionResult
要輸出傳回值的時候,不僅使用了IActionResult介面,我還使用下面這個調用:
context.Response.Write(result.ToString());
不要小看了ToString()的調用。
對於自訂的資料類型來說,可以用它來控制最終輸出給用戶端的是JSON或者是XML, 或者是您自己定義的文本序列化格式(比如:特殊分隔字元拼接而成), 因此,它有足夠的能力可以取代JsonResult類型,而且同樣不影響Action的單元測試。
ToString()的強大原因在於它是個虛方法,可以被衍生類別重寫。
所以,如果您只打算返回一個資料實體物件給用戶端,那麼既可以實現IActionResult介面,還可以重寫ToString方法。
【相關推薦】
1. 精選:“php程式員工具箱”V0.1版本下載
2. ASP免費視頻教程
3. 入門級的.NET MVC 執行個體
4. MyMVC框尋找Action的過程詳解
5. .NET MyMVC架構執行Action的過程詳解
6. .NET MyMVC架構如何給方法賦值的教程