在錯誤中學習ASP.NET MVC 第 12 篇 - 認識Controller - ActionResult

 

ActionResult

這篇來好好研究一下MVC 5內提供的9種繼承ActionResult的型別,可以參考這個網站,其中我就挑幾個我自己常用的出來說明。





ViewResult

用途是輸出HTML內容,為什麼要先講ViewResult呢,因為這跟第10天講的認識Controller - 加入控制器中提到的錯誤有關係



為什麼加入一個新的Controller後去瀏覽Action會出現錯誤呢?其實這個錯誤到現在我自己到現在還是蠻常遇到的,我們透過錯誤訊息可以得知Controller它找不到相對應的View檔案所以就掛了,這時候就要去新增一個View來呈現資料

將游標停在Action中的程式碼區域內,按滑鼠右鍵>加入檢視



直接按加入



Index.cshtml檔案被建立,路徑在Views/Test/Index.cshtml



再次瀏覽Test/Index 就可以正常顯示Html的畫面囉!



return View() 會去讀取Views資料夾下讀取一樣名稱的Controller資料夾以及同名的cs.html檔案

如果想要換成讀取你自己指定的cs.html也是可以的喔!在View後面打一個(號時會出現多載方法的提示,可以根據自己的需求選擇對應的方法再將參數傳入就可以囉



例如想讀取Views裡面的Home/About.cshtml的話,可以這樣寫

return View("~/Views/Home/About.cshtml");

再來尋找View的順序,從錯誤畫面就可以得知,會先找aspx與ascx的檔案再找cs,html與vb.html,資料夾目錄會先找Views/{Controller}再找Views/Shared資料夾



RedirectResult

在Controller控制流程到最後常常會有轉址的動作,裡如按下會員登出的按鈕之後會導到重新登入的畫面,RedirectRouteResult有四大類方法可以使用



我自己是最常使用RedirectToAction方法



FileResult

當按下"下載"按鈕時常常會連結到一個檔案的url此時瀏覽器就會出現下載的視窗,我自己最常使用FileContentResult這個方法,另外也有FilePathResult與FileStreamResult方法



其實還有很多哩哩摳摳的ActionResult像是JsonResult與ContentResult都蠻常用的,詳細可以參考這個網站,後續有使用到再補充說明

留言

這個網誌中的熱門文章

CPE 一顆星選集題目說明與解答 - Java 筆記與心得分享

Visual Studio 自動排版格式化程式碼

1. Vito's family (CPE10406, UVA10041) - CPE一顆星解答與說明