(1)母版頁
在mvc 樣例程序LogOn.cshtml 里沒有看到<html></html>這樣的標記,我猜他有類似於webform里母版頁的東東,最后發現在Views目錄下,有一個_ViewStart.cshtml 文件,有一句代碼:
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
這段代碼用來指定母版頁的。
logOn.cshtml 的代碼里沒看到指定母版頁的語句,那么它估計是調用了_ViewStart.cshtml,什么時候調用的,不清楚,大概asp.net mvc默認的吧。
而在_Layout.cshtml 里:
<div id="main"> @RenderBody() </div>
@RenderBody 估計是顯示LogOn.cshtml 等頁面內容的吧。
(2) 用戶控件
在_Layout.cshtml 里發現了這么一句:
@Html.Partial("_LogOnPartial")
Html.Patial 的含義: Renders the specified partial view as an HTML-encoded string.渲染部分視圖,想來就是用戶控件了。
還有另外一種寫法:
@{Html.RenderPartial("_LogOnPartial");}
看起來上面的簡單好寫,不過兩者還是有區別滴。
Partial輸出到臨時變量StringWriter ;RenderPartial輸出到HtmlHelper.ViewContext.Writer上(即直接輸出到Response)。
_Layout.cshtml _LogOnPartial.cshtml 都放在Views/Shared 目錄下,於是乎,我明白了,shared目錄是干嘛的。
好,明白了,asp.net mvc 里母版頁和用戶控件怎么寫,怎么調用啦。