路由和資料傳遞(04)
阿新 • • 發佈:2020-12-08
目錄:
-
檢視引擎
-
路由
-
資料傳遞
一、檢視引擎
1.1 ASP.NET MVC 提供兩種檢視引擎:
①ASPX(C#)。
②Razor(CSHTML)。推薦使用Razor。
1.2 Razor
- 標誌符號:@
- 語句塊:@{ }
- 轉義符:@@
- 名稱空間:@
- 註釋:@* *@
1.@( expression) 或 @ expression @是Razor中的一個重要符號,它被定義為Razor伺服器程式碼塊的開始符號。 <p> @Datetime.Now.ToStirng()</p> 可省略括號 @("razor檢視".ToString() ) 不可省略括號
2.@{}@{ var stu = new RazorDemo.Models.Student();
stu.StudentName = "王五";
<p>姓名:@stu.StudentName</p>
}
@foreach (var stu in students)
{
<p>姓名:@stu.StudentName</p>
}
@if (stu.Gender == "男")
{
<p>姓名:@stu.StudentName</p>}
3.@@
<p>@@2013 copy right</p>
4.@
@using RazorDemo.Models
5.@* *@
1.3佈局頁
用處:有助於多個檢視保持一致外觀,語法簡潔,靈活性高。
使用:定義公共模板,包含一個或多個佔位符,其他檢視可提供內容。
- 每一個佈局頁都要Layout宣告,形成程式碼冗餘。自動新增的_ViewStart.cshtml頁面可以用來消除這種冗餘。
- 佔位符:@RenderBody()只允許有一個,@RenderSection( )可有多個。
- @RenderSection( )有一個過載,第二個型別是bool,指明是否為必須。
- 注意:視圖裡有的定義,佔位符裡也要有。多個佔位符要加section。
<!DOCTYPE html> <html><head> <meta name="viewport" content="width=device-width" /> <title>@ViewBag.Title</title> </head> <body> <div id="main-content"> @RenderBody() <!--佔位符,用來標記主要內容的位置--> </div> </body> </html> <!--佔位符內容--!> @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/SiteLayout.cshtml"; } <h2>這是主頁內容</h2> <!--總效果--!> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div id="main-content"> <h2>這是主頁內容</h2> </div> </body> </html>
二、路由
2.1 為什麼需要路由