View結構
其實給我們提供了官方的MvcDemo,就是在我們直接去新建一個不為空的MVC項目。
這里就是一個MVC的Demo了,可以看一下這個Demo中View的結構是什么
上圖可以發現,有一個Shared(共享)文件夾,先從這個文件夾看起,下圖可以看到,里面分別有_Layout.cshtml,_LoginPartial.cshtml,Error.cshtml以有Lockout.cshtml。
- _Layout.cshtml 這個視圖相當與母版頁,把網站共有的部分放在這個view中。其它的視圖就不需要再去寫重復的代碼,比如頂部導航與底部信息
- _loginPartial.cshtml 從名字可以看出來 登錄分布頁。在_layout中放有共有的部分,但是如果代碼太多也會影響到閱讀性,使用分布頁面。可以使得代碼更加簡潔,分布頁可以使用 Html.Partial去引用
- Error.cshtml 這個就很簡單了,是一個錯誤頁面。其它view都將使用Error.cshtml做錯誤頁面展示
- Lockout.cshtml 這個沒什么特別的,僅是一個視圖而已。
在Views文件夾還可以發現有一個叫做_ViewStart的視圖,通過名字就可以清楚的看到,這個視圖先與其它的視圖執行。
那么_viewstart有什么用呢? 下面有這個一個場景,我們的視圖需要達到一定的條件才可以去使用母版頁反之不用。就可以使用_ViewStart進行 統一設置 下圖我簡單寫了一下,如果隨機數是偶數,那么使用母版頁。奇數則不用
Razor簡單語法
在還沒有Razor的時候,有很多其它的視圖引擎。但是Razor出現的時候,其它的就慢慢的消失了。可見其強大。
Razor可以讓我們在視圖中去寫C#代碼。簡單的截一張圖,對下面的Razor語法進行分析
-
@using 引用程序集,這個應該沒有什么疑惑了
-
@{} 包含塊,可以在里面寫一些邏輯代碼,圖中也可以看到進行了if判斷
-
@xxxx 這里xxxx可以是一個變量。在開發中常用@ViewBag.xxx,這些寫法是把這個變量值顯示在這個位置。
-
@Html.xxx() 可以看到很多這個的代碼,這種是進行調用我們后端類的方法並把返回值顯示在這個位置。Html全名HtmlHelper,還有AjaxHelper。是微軟為我們封裝的一種常用的方法。比如下拉框、ajax提交等
-
其實我們還會經常在視圖頁看到@model,我們可以在Controller中返回Model。也是一種數據傳輸的方法
本文就到這里,下一篇講Razor中的幫助類、HtmlHelper、AjaxHelper