1. 程式人生 > 其它 >ASP.NET MVC學習筆記03檢視

ASP.NET MVC學習筆記03檢視

早在ASP.NET MVC 3就引入了Razor檢視引擎( Razor view engine)。Razor檢視模板檔案使用.cshtml副檔名,並提供了一個優 雅的方式來使用C#語言建立所要輸出的HTML。用Razor編寫一個檢視模板檔案時,將 所需的字元和鍵盤敲擊數量降到了最低,並實現了快速,流暢的編碼工作流程。


控制器返回指定檢視

當前在控制器類中的Index方法返回了一個硬編碼的字串。更改HelloController方法返回一個 View物件,如下面的示例程式碼:

public ActionResult Index() { return View(); }

上面的Index方法使用一個檢視模板來生成一個HTML返回給瀏覽器。控制器的方法 (也被稱為action method(操作方法) ),如上面的Index方法,一般返回一個ActionResult(或從ActionResult所繼承的型別),而不是原始的型別,如字串。

新增檢視

新建檢視

在該專案中,您可以使用的Index方法來新增一個檢視模板。要做到這一點,在 ViewsHello資料夾上,單擊滑鼠右鍵,然後單擊“ 新增“,選擇“帶有佈局的MVC 5 檢視頁(Razor)“。

指定檢視名稱

指定檢視的名稱,這裡填入index

檢視佈局

選擇頁面的佈局,這裡就選擇預設提供的基於Bootstrap的一個佈局模板_Layout.cshtml

.當然,在實際專案中,你可以提前搭建好佈局頁面,並使用佈局功能來實現整體站點的風格統一,在後面會提到。

編輯檢視

對Hello的View也就是Index.cshtml檔案進行修改,然後預覽檢視效果

上述操作中:Hello控制器( http://localhost:xxxx/Hello)。在控制器的Index方法中並沒有做太多的工 作,它只是執行了return View(),這個方法指定使用一個檢視模板檔案來Render返回給瀏覽器的HTML。因為沒有明確指定使用那個檢視模板檔案,ASP.NET MVC會預設 使用ViewsHelloWorld資料夾下的Index.cshtml檢視檔案。下圖顯示了在檢視檔案中硬編碼的字串 “Hello from our View Template!

修改佈局頁

首先,想要修改在頁面頂部的連結 “Application name“。這段文字是每個頁面的公用文 字,即使這段文字出現在每個頁面上,但是實際上它僅儲存在工程裡的一個地方。在解決方案資源管理器裡找到 /Views/Shared 資料夾,開啟 _Layout.cshtml 檔案。此檔案被稱為佈局頁面 (Layout page),並且其它所有的子頁面,都共享使用這個佈局頁面。

佈局模版允許在一個位置放置佔位所需的 HTML 容器,然後將其應用到您網站中所有 的網頁佈局。 查詢@RenderBody(). 所建立的所有檢視頁面都被”包裝” 在佈局頁面中 來顯示,RenderBody只是個佔位符。例如,如果點選“關於(About)”連結,ViewsHomeAbout.cshtml 檢視會在RenderBody方法內進行Render

在佈局模板頁面內修改ActionLink內容, 把網站標題從 “應用程式名稱“ 修改為 “MVC Movie。參考上圖,儲存執行。

修改檢視

通過修改佈局模板上的站點標題字尾,ActionLink中的文字內容,修改了站點標題,站點名稱,以及版權說明中的通用部分,並適配到了所有的頁面。

下面來修改一下我們之前建立的Hello檢視,在右側的解決方案管理器中找到Hello/Index.cshtml

第一個程式碼塊表示,定義當前檢視使用通用佈局,我們使用@* *@把這塊程式碼註釋掉,自己修改當前檢視的佈局。在這裡順帶一提,VS的註釋快捷鍵是Ctrl+E+C,選中程式碼塊,按下快捷鍵註釋。

同時,我們修改下當前的頁面的TitleMovie List以及二級標題內容如下圖。此時通過路由訪問Hello,會自動參照當前的佈局樣式展示頁面,而預設內容會沿用預設佈局。

上圖中所做的修改,如給ViewBag.Title 變數的值都會傳遞到如圖3.5所示的頁面佈局中,從而替換掉其中的變數實現頁面內容的載入。此外還要注意Index.cshtml檢視模板中的內容是如何合併到 _Layout.cshtml模板,從而形 成一個完整的HTML返回到客戶端瀏覽器的。使用佈局模板頁面,可以很容易進行一個 修改並應用到所有頁面

對檢視的介紹就是這樣,下面開始接觸MVC中的M,但是在介紹模型之前,不得不說一下資料是如何從控制器傳給檢視的,下一篇就先解決清楚這個問題。