MVC Razor視圖引擎


Razor 不是編程語言。它是服務器端標記語言。

Razor 是一種允許您向網頁中嵌入基於服務器的代碼(Visual Basic 和 C#)的標記語法

當網頁被寫入瀏覽器時,基於服務器的代碼能夠創建動態內容。在網頁加載時,服務器在向瀏覽器返回頁面之前,會執行頁面內的基於服務器代碼。由於是在服務器上運行,這種代碼能執行復雜的任務,比如訪問數據庫。

Razor在減少代碼冗余、增強代碼可讀性和VS智能感知方面,都有着突出的優勢。 Razor一經推出就深受所有ASP.Net開發者的喜愛。

 

Razor 使用的語法與 PHP 和 ASP 相似。

ASP中<% %>=@

 

語法規則

Razor 代碼封裝於 @{ ... } 中

行內表達式(變量和函數)以 @ 開頭

代碼語句以分號結尾

字符串由引號包圍

C# 代碼對大小寫敏感

C# 文件的擴展名是 .cshtml

添加視圖的時候選擇Razor視圖引擎就可以

 

用法:

 @{ var name = "Word!!!!";}
          @for (int i = 0; i < 3; i++)
          {
                <h1>Hello @name</h1>
          }
        @if (true)
        {
              <h1>Hello @name</h1>
        }

如何工作:

當服務器讀取這種頁面后,在將 HTML 頁面發送到瀏覽器之前,會首先運行 Razor 代碼。這些在服務器上執行的代碼能夠完成瀏覽器中無法完成的任務,比如訪問服務器數據庫。服務器代碼能夠在頁面被發送到瀏覽器之前創建動態的 HTML 內容。從瀏覽器來看的話,由服務器代碼生成的 HTML 與靜態 HTML 內容沒有區別。

 

獲取用戶輸入: <label for="text1">FN</label>   <input type="text" name="text1" />  for  標簽和文本關聯在一起,當鼠標點擊標簽時會在文本框在聚焦

 

Razor數據裝換

 

循環:

創建名為Loop的Action 定義一個集合,然后通過Razor遍歷出來

Public ActionResult Loop()
{
//ViewBag是動態類型 ViewBag.Loop
=new List<string>{"張三","李四","王五"}; return View(); }

Loop.cshtml代碼:

注意:代碼中允許存在標簽與代碼混編的形式,Razor在智能感知方面有着非常優秀的表現。

 

動態(Dynamic)類型: 可以存儲任何類型的值在動態數據類型變量中。這些變量的類型檢查是在運行時發生的

ViewData是字典類型,賦值方式用字典方式,通過key值讀取對應的value, ViewData["myName"]

2、ViewBag是動態類型,使用時直接添加屬性賦值即可 ViewBag.myName

3、ViewBag和ViewData只在當前Action中有效,類似於ViewState(WebForm中頁面上的對象…)

4、ViewData和ViewBag 中的值可以互相訪問,因為ViewBag的實現中包含了ViewData

Action:

View:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM