1. 程式人生 > 實用技巧 >路由和資料傳遞(04)

路由和資料傳遞(04)

目錄:

  • 檢視引擎

  • 路由

  • 資料傳遞

一、檢視引擎

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 為什麼需要路由