認識Controller | Return View 參數
這篇來好好研究一下MVC5內提供的9種繼承ActionResult的型別,可以參考這個網站[1],其中我就挑幾個我自己常用的出來說明。ViewResult用途是輸出HTML內容,為什麼要先講ViewResult呢,因為這跟第10天講的認識Controller-加入控制器[2]中提到的錯誤有關係為什麼加入一個新的Controller後去瀏覽Action會出現錯誤呢?其實這個錯誤到現在我自己到現在還是蠻常遇到的,我們透過錯誤訊息可以得知Controller它找不到相對應的View檔案所以就掛了,這時候就要去新增一個View來呈現資料將游標停在Action中的程式碼區域內,按滑鼠右鍵>加入檢視...
這篇來好好研究一下MVC 5內提供的9種繼承ActionResult的型別,可以參考這個網站[1],其中我就挑幾個我自己常用的出來說明。
ViewResult用途是輸出HTML內容,為什麼要先講ViewResult呢,因為這跟第10天講的認識Controller - 加入控制器[2]中提到的錯誤有關係
為什麼加入一個新的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控制流程到最後常常會有轉址的動作,裡如按下會員登出的按鈕之後會導到重新登入的畫面,RedirectRoute...