隨便創建一個新的ASP.NET MVC的項目,就會默認生成一個home/index的controller和action,而且在index()中只有一句return View()。用腳都能想出來這個View()里邊肯定有很多貓膩。下面是我的一些結論:
從Index的返回值來看,View()返回一個ActionResult的實例。如果鼠標放在View()上右鍵“轉到定義”,會發現它實際返回的是ViewResult,ViewResult的繼承層次是ActionResult->ViewResultBase->ViewResult。這就清楚了。從[ASP.NET MVC2 系列] Action要求與View本質
可以看出,ActionResult中最主要的是一個ExecuteResult(ControllerContext context)函數。這個函數中定義了如何通過Response對象輸出HTML文檔到客戶端。
哈哈,是不是明白很多了。Go on!