自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

 [[406847]]

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

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

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

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

1. 啟動 Visual Studio IDE。

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

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

4. 點(diǎn)擊“下一步”。

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

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

7. 點(diǎn)擊“下一步”。

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

9. 確保“Enable Docker”、“Configure for HTTPS”和“Enable Razor runtime compilation”復(fù)選框未選中,因?yàn)槲覀儾粫谶@里使用任何這些特性。

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

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

什么是視圖引擎?

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

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

視圖引擎如何工作?

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

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

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

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

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

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

  1. @ViewData [ “Message” ] 

刪除 ASP.NET Core MVC 中的默認(rèn)視圖引擎

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

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

在 Razor 視圖引擎中使用 if 構(gòu)造

在本節(jié)中,我們將研究如何使用 Razor 語法對視圖進(jìn)行編程。讓我們首先使用一些常見的結(jié)構(gòu),例如 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.          

下一個(gè)代碼片段展示了如何在 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 

如果當(dāng)天是星期一,當(dāng)您運(yùn)行該應(yīng)用程序時(shí),您將在 Web 瀏覽器中看到以下輸出。

圖 1. 運(yùn)行中的 Razor 視圖

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

您可以在 Razor 視圖中使用循環(huán)來執(zhí)行重復(fù)操作。以下代碼片段演示了如何在 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.    

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

  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> 

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

  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類??梢栽谝晥D中使用此模型,如下面給出的代碼片段所示:

  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 是一個(gè)通用模板引擎——您可以在任何地方使用它來呈現(xiàn) HTML。
您還可以在 ASP.NET Core MVC 中使用第三方視圖引擎,例如 Spark、SharpDOM 和 NDjango。

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

責(zé)任編輯:梁菲 來源: InfoWord
相關(guān)推薦

2012-06-26 10:24:51

Asp.Net框架Razor

2021-03-17 09:45:31

LazyCacheWindows

2021-02-02 16:19:08

Serilog日志框架

2021-02-06 21:40:13

SignalR通訊TypeScript

2021-01-31 22:56:50

FromServiceASP

2021-02-03 13:35:25

ASPweb程序

2021-03-03 22:37:16

MediatR中介者模式

2021-03-10 09:40:43

LamarASP容器

2021-02-28 20:56:37

NCache緩存框架

2021-01-28 22:39:35

LoggerMessa開源框架

2021-01-07 07:39:07

工具接口 Swagger

2021-02-07 17:29:04

監(jiān)視文件接口

2011-01-19 11:17:36

2021-01-26 14:57:00

中間件應(yīng)用模塊化

2021-04-12 07:03:10

輕量級模塊化框架

2021-01-04 05:44:54

框架日志

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
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號