成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 ASP.NET Core MVC 中使用 Razor 視圖引擎

譯文
開發(fā)
如何在ASP.NET Core MVC中使用Razor視圖引擎。

 [[406847]]

【51CTO.com快譯】ASPX 視圖引擎是在 ASP.NET MVC 中構建的傳統(tǒng)視圖引擎。Razor 視圖引擎更高級,現(xiàn)在是 ASP.NET Core MVC 的默認視圖引擎。本文簡要比較了這兩種視圖引擎,然后討論如何在 ASP.NET Core MVC 中使用 Razor 視圖引擎。

要使用本文提供的代碼示例,您應該在系統(tǒng)中安裝 Visual Studio 2019。

在 Visual Studio 中創(chuàng)建 ASP.NET Core MVC 項目

首先,在 Visual Studio 2019 中創(chuàng)建一個 ASP.NET Core項目。按照這些步驟將在 Visual Studio 2019 中創(chuàng)建一個新的 ASP.NET Core MVC 5 項目。

1. 啟動 Visual Studio IDE。

2. 單擊“創(chuàng)建新項目”。

3. 在“創(chuàng)建新項目”窗口中,從顯示的模板列表中選擇“ASP.NET Core Web App (Model-View-Controller)”。

4. 點擊“下一步”。

5. 在“配置新項目”窗口中,指定新項目的名稱和位置。

6. 根據(jù)您的首選項,也可以選中 “將解決方案和項目放置在同一目錄中”復選框。

7. 點擊“下一步”。

8. 在接下來顯示的“附加信息”窗口中,從頂部的下拉列表中選擇 .NET 5.0 作為目標框架。將將“Authentication Type”保留為“None”(默認)。

9. 確保“Enable Docker”、“Configure for HTTPS”和“Enable Razor runtime compilation”復選框未選中,因為我們不會在這里使用任何這些特性。

10. 單擊“創(chuàng)建”。

將創(chuàng)建一個新的 ASP.NET Core MVC 5 項目。在本文的后續(xù)部分中,我們將使用這個項目來處理Razor視圖。

什么是視圖引擎?

視圖引擎將服務器端模板轉(zhuǎn)換為 HTML 標記,并在控制器的操作方法觸發(fā)時在web瀏覽器中呈現(xiàn)它。ASP.NET MVC 最初與 ASPX 視圖引擎一起提供,但后來的版本中添加了 Razor 視圖引擎。Razor 視圖引擎現(xiàn)在是 ASP.NET Core MVC 應用程序的默認視圖引擎。

雖然 ASPX 視圖引擎作為 System.Web.Mvc.WebFormViewEngine 命名空間的一部分可用,但 Razor 視圖引擎在 Microsoft.AspNetCore.Mvc.Razor 命名空間中可用。

視圖引擎如何工作?

每個視圖引擎包含三個組件:ViewEngine 類、view類和模板解析器。ViewEngine 類擴展了 IViewEngine 接口并實現(xiàn)其成員,這個類負責定位視圖模板。view類擴展了 IView 接口并實現(xiàn)了其成員。這個類負責將模板與數(shù)據(jù)結(jié)合,然后將其轉(zhuǎn)換為 HTML 標記,以便在 Web 瀏覽器中呈現(xiàn)。模板解析器是一個將視圖編譯成可執(zhí)行代碼的解析引擎。

您還可以在 ASP.NET Core 中創(chuàng)建自己的自定義視圖引擎。為此,您需要創(chuàng)建一個類,來擴展與 Microsoft.AspNetCore.Mvc.ViewEngines 命名空間相關的 IView 和 IViewEngine 接口。然后實現(xiàn) IViewEngine 接口的兩個方法,即 GetView 和 FindView。還可以實現(xiàn) IView 接口的 RenderAsync 方法。此方法負責在運行時呈現(xiàn)視圖引擎。

在 ASP.NET Core MVC 中創(chuàng)建新的 Razor 視圖

在上面創(chuàng)建的新 ASP.NET Core MVC 應用程序中,讓我們創(chuàng)建一個簡單的視圖。為此,請編輯 HomeController.cs 文件并添加以下代碼:

  1. public IActionResult Welcome(){ 
  2.     ViewData["Message"] = "Hello World!"
  3.     return View(); 

接下來,在 Views/Home 文件夾中新建一個名為 Welcome.cshtml 的新視圖文件,并輸入以下代碼:

  1. @ViewData [ “Message” ] 

刪除 ASP.NET Core MVC 中的默認視圖引擎

創(chuàng)建自定義視圖引擎時,可以刪除 Razor 視圖引擎和 ASPX 視圖引擎,然后添加自己的自定義視圖引擎,如下面給出的代碼片段所示。

  1. services.AddMvc() 
  2.             .AddViewOptions(options => 
  3.             { 
  4.                 options.ViewEngines.Clear(); 
  5.                 options.ViewEngines.Add(typeof(MyCustomViewEngine)); 
  6.             });  

在 Razor 視圖引擎中使用 if 構造

在本節(jié)中,我們將研究如何使用 Razor 語法對視圖進行編程。讓我們首先使用一些常見的結(jié)構,例如 if、if else 和 switch case 語句。
以下代碼片段演示了如何在Razor中使用if語句。

  1. @{var x = 10;}          
  2.           @if (x > 5)  
  3.            {             
  4. The value of x is greater than 5. 
  5.  
  6.            }  
  7.          

下一個代碼片段展示了如何在 Razor 中使用 if else 語句。

  1. @{var x = 2;}               
  2.           @if (x > 5)  
  3.            {                
  4. The value of x is greater than 5. 
  5.  
  6.            }  
  7.            else  
  8.            {      
  9. The value of x is less than 5. 
  10.  
  11.            }    

在 Razor 視圖引擎中使用 switch case 語句

以下是如何在Razor中使用switch case語句。

  1. @{ 
  2. var weekday=DateTime.Now.DayOfWeek.ToString(); 
  3. var text=string.Empty; 
  4. @switch(weekday) 
  5. case "Monday"
  6.     text="This is the first working day of the week."
  7.     break; 
  8. case "Friday"
  9.     text="This is the last working day of the week"
  10.     break; 
  11. default
  12.     text="Today is: " + weekday; 
  13.     break; 
  14. @text 

如果當天是星期一,當您運行該應用程序時,您將在 Web 瀏覽器中看到以下輸出。

圖 1. 運行中的 Razor 視圖

在 Razor 視圖引擎中使用循環(huán)

您可以在 Razor 視圖中使用循環(huán)來執(zhí)行重復操作。以下代碼片段演示了如何在 Razor 中使用循環(huán)。 

  1. <html>  
  2. <body>  
  3.      <p>Displaying numbers 1 to 10</p> 
  4.           @for(var i = 1; i <= 10; i++)  
  5.            {               
  6.               <p>@i</p> 
  7.            }  
  8. </body>  
  9. </html>  
  10.    

在處理集合時,可以利用 foreach 循環(huán)。以下代碼片段演示了如何顯示與 Request.Headers 集合相關的所有鍵。

  1.  <html> 
  2. <body> 
  3. <ul> 
  4. @foreach (var k in this.Context.Request.Headers) 
  5.     { 
  6.         <li>@k.Key</li> 
  7.     } 
  8. </ul> 
  9. </body> 
  10. </html> 

如果想要在視圖中使用模型,應該創(chuàng)建一個模型類,如下面給出的代碼片段所示。

  1. public class Author 
  2.     { 
  3.         public int Id { get; set; } 
  4.         public string FirstName { get; set; } 
  5.         public string LastName { get; set; } 
  6.     }  

為簡單起見,在 Models 解決方案文件夾中創(chuàng)建model類。可以在視圖中使用此模型,如下面給出的代碼片段所示:

  1. @model Author      <ul>          <li>Author Id: @Model.Id</li>          <li>First Name: @Model.FirstName</li>          <li>LastName: @Model.LastName</li>      </ul>    

Razor 視圖引擎比以前版本更高級,為從模板生成 HTML 代碼提供了更友好的語法。請注意,Razor 是一個通用模板引擎——您可以在任何地方使用它來呈現(xiàn) HTML。
您還可以在 ASP.NET Core MVC 中使用第三方視圖引擎,例如 Spark、SharpDOM 和 NDjango。

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責任編輯:梁菲 來源: InfoWord
相關推薦

2012-06-26 10:24:51

Asp.Net框架Razor

2021-03-17 09:45:31

LazyCacheWindows

2021-02-06 21:40:13

SignalR通訊TypeScript

2021-02-02 16:19:08

Serilog日志框架

2021-03-10 09:40:43

LamarASP容器

2021-02-03 13:35:25

ASPweb程序

2021-02-28 20:56:37

NCache緩存框架

2021-01-07 07:39:07

工具接口 Swagger

2021-03-03 22:37:16

MediatR中介者模式

2021-01-28 22:39:35

LoggerMessa開源框架

2021-01-31 22:56:50

FromServiceASP

2021-02-07 17:29:04

監(jiān)視文件接口

2021-01-26 14:57:00

中間件應用模塊化

2021-04-12 07:03:10

輕量級模塊化框架

2021-01-04 05:44:54

框架日志

2011-01-19 11:17:36

2010-11-18 08:46:27

ASP.NET MVC

2009-07-22 09:36:54

使用UpdataModASP.NET MVC

2012-05-09 13:29:42

ASP.NET

2017-10-20 08:52:11

內(nèi)存緩存并發(fā)模式Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99精品久久久久久 | 亚洲三级在线观看 | 男人影音| 超碰97人人人人人蜜桃 | 欧美www在线观看 | 成年人在线观看视频 | 毛片一级片 | 精品一区久久 | 国产欧美一区二区三区久久人妖 | 久久久青草婷婷精品综合日韩 | 日韩精品在线免费观看视频 | 中文字幕免费 | 久草免费电影 | 99精品国产一区二区三区 | 五月激情婷婷在线 | 一级免费毛片 | 天天草视频 | 欧美女优在线观看 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 一区二区日本 | 九九av | 欧美一极视频 | 精品一区二区三 | 国产精品一区一区 | 国产成人99久久亚洲综合精品 | 国产电影一区二区在线观看 | 免费观看日韩精品 | 日韩中文字幕视频在线 | 欧美精三区欧美精三区 | 国产精品视频一区二区三区不卡 | 久久久九九 | 日本精品视频在线观看 | 国产精品成人一区二区三区吃奶 | 最新国产在线 | 99热精品在线观看 | 亚洲精品免费观看 | 国产精品日韩欧美一区二区 | www.99热| 成人久久久 | 成年网站在线观看 | 狠狠操狠狠操 |