Razor 視圖引擎學習
Razor 視圖文件擴展名為 cshtml 或者 vbhtml , 現在主要討論 cshtml。
@ 定義 Razor 語句
Name: @Model.Name
Time View Rendered: @Date.Time.ToShoarTimeString() @if (Model.Category == "Watersports") {@Model.Category Splash!
}
@: 輸出單行不是以 html 標記開頭的, 并且要包含 html 標記的內容
@if (Model.Category == "Watersports") {
@: Category: @Model.Category Splash!
}
<text></text> 輸出多行包含 html 標記的內容
@if (Model.Category == "Watersports") {
@: Category: @Model.Category Splash!
Row, row, row your boat,
Gently down the stream ...
}
@model 表示使用模型對象的類型
@model Razor.Models.Product@{} 表示代碼段
@{
if (Model.Category == "Watersports") {
@: Category: @Model.Category Splash!
}
if (Model.Price > 10) {
Pricey!
}
}
使用布局頁面
在 cshtml 文件的開頭可以指定使用哪個布局頁面, 例如:@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
如果不指定 Layout 屬性, Razor 引擎會檢查 Views 目錄下面的 _ViewStart.cshtml 文件, 這個頁面指定了默認的布局頁面。
如果不是用布局頁面, 則需要在頁面的開頭添加聲明如下:
@{
Layout = null;
}
以下劃線 (_) 開頭的視圖文件不會返回給用戶, 只能在服務端 cshtml 文件中進行引用。
@RenderBody() 渲染子視圖
表示在此渲染子視圖, 只能出現在布局頁面中, 且只能出現一次。@RenderPage 渲染另一個頁面
表示在當前位置渲染另外一個頁面。@RenderSection(name, required) 渲染一個區域
表示在當前頁面渲染一個區域, 區域名稱在布局頁面定義, required 表示該區域是否為可選的。@region name {} 實現一個區域的內容
與布局頁面的 @RenderSection 相對應, 實現布局頁面的定義的區域。張志敏所有文章遵循創作共用版權協議,要求署名、非商業 、保持一致。在滿足創作共用版權協議的基礎上可以轉載,但請以超鏈接形式注明出處。
本博客已經遷移到 GitHub , 圍觀地址: https://beginor.github.io/
浙公網安備 33010602011771號