IT科技类资讯

如何在 ASP.NET Core MVC 中使用 Razor 视图引擎

时间:2010-12-5 17:23:32  作者:域名   来源:IT科技类资讯  查看:  评论:0
内容摘要:【.com快译】ASPX 视图引擎是在 ASP.NET MVC 中构建的传统视图引擎。Razor 视图引擎更高级,现在是 ASP.NET Core MVC 的默认视图引擎。本文简要比较了这两种视图引擎

 

【.com快译】ASPX 视图引擎是中使在 ASP.NET MVC 中构建的传统视图引擎。Razor 视图引擎更高级,用R引擎现在是视图 ASP.NET Core MVC 的默认视图引擎。本文简要比较了这两种视图引擎,中使然后讨论如何在 ASP.NET Core MVC 中使用 Razor 视图引擎。用R引擎

要使用本文提供的视图代码示例,您应该在系统中安装 Visual Studio 2019。中使

在 Visual Studio 中创建 ASP.NET Core MVC 项目

首先,用R引擎在 Visual Studio 2019 中创建一个 ASP.NET Core项目。视图按照这些步骤将在 Visual Studio 2019 中创建一个新的中使 ASP.NET Core MVC 5 项目。

1. 启动 Visual Studio IDE。用R引擎

2. 单击“创建新项目”。视图

3. 在“创建新项目”窗口中,中使从显示的用R引擎模板列表中选择“ASP.NET Core Web App (Model-View-Controller)”。

4. 点击“下一步”。视图

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

6. 根据您的首选项,也可以选中 “将解决方案和项目放置在同一目录中”复选框。

7. 点击“下一步”。

8. 在接下来显示的“附加信息”窗口中,从顶部的下拉列表中选择 .NET 5.0 作为目标框架。将将“Authentication Type”保留为“None”(默认)。服务器托管

9. 确保“Enable Docker”、“Configure for HTTPS”和“Enable Razor runtime compilation”复选框未选中,因为我们不会在这里使用任何这些特性。

10. 单击“创建”。

将创建一个新的 ASP.NET Core MVC 5 项目。在本文的后续部分中,我们将使用这个项目来处理Razor视图。

什么是视图引擎?

视图引擎将服务器端模板转换为 HTML 标记,并在控制器的操作方法触发时在web浏览器中呈现它。ASP.NET MVC 最初与 ASPX 视图引擎一起提供,但后来的版本中添加了 Razor 视图引擎。Razor 视图引擎现在是 ASP.NET Core MVC 应用程序的默认视图引擎。

虽然 ASPX 视图引擎作为 System.Web.Mvc.WebFormViewEngine 命名空间的一部分可用,但 Razor 视图引擎在 Microsoft.AspNetCore.Mvc.Razor 命名空间中可用。

视图引擎如何工作?

每个视图引擎包含三个组件:ViewEngine 类、view类和模板解析器。ViewEngine 类扩展了 IViewEngine 接口并实现其成员,这个类负责定位视图模板。view类扩展了 IView 接口并实现了其成员。这个类负责将模板与数据结合,然后将其转换为 HTML 标记,以便在 Web 浏览器中呈现。模板解析器是一个将视图编译成可执行代码的解析引擎。亿华云计算

您还可以在 ASP.NET Core 中创建自己的自定义视图引擎。为此,您需要创建一个类,来扩展与 Microsoft.AspNetCore.Mvc.ViewEngines 命名空间相关的 IView 和 IViewEngine 接口。然后实现 IViewEngine 接口的两个方法,即 GetView 和 FindView。还可以实现 IView 接口的 RenderAsync 方法。此方法负责在运行时呈现视图引擎。

在 ASP.NET Core MVC 中创建新的 Razor 视图

在上面创建的新 ASP.NET Core MVC 应用程序中,让我们创建一个简单的视图。为此,请编辑 HomeController.cs 文件并添加以下代码:

public IActionResult Welcome(){      ViewData["Message"] = "Hello World!";     return View(); } 

接下来,在 Views/Home 文件夹中新建一个名为 Welcome.cshtml 的新视图文件,并输入以下代码:

@ViewData [ “Message” ] 

删除 ASP.NET Core MVC 中的默认视图引擎

创建自定义视图引擎时,可以删除 Razor 视图引擎和 ASPX 视图引擎,然后添加自己的自定义视图引擎,如下面给出的代码片段所示。

services.AddMvc()             .AddViewOptions(options =>             {                  options.ViewEngines.Clear();                 options.ViewEngines.Add(typeof(MyCustomViewEngine));             });  

在 Razor 视图引擎中使用 if 构造

在本节中,我们将研究如何使用 Razor 语法对视图进行编程。让我们首先使用一些常见的结构,例如 if、网站模板if else 和 switch case 语句。

以下代码片段演示了如何在Razor中使用if语句。 @{ var x = 10;}                    @if (x > 5)             {              The value of x is greater than 5.            }  

下一个代码片段展示了如何在 Razor 中使用 if else 语句。

@{ var x = 2;}                         @if (x > 5)             {                 The value of x is greater than 5.            }             else             {       The value of x is less than 5.            }    

在 Razor 视图引擎中使用 switch case 语句

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

@{  var weekday=DateTime.Now.DayOfWeek.ToString(); var text=string.Empty; } @switch(weekday) {  case "Monday":     text="This is the first working day of the week.";     break; case "Friday":     text="This is the last working day of the week";     break; default:     text="Today is: " + weekday;     break; } @text 

如果当天是星期一,当您运行该应用程序时,您将在 Web 浏览器中看到以下输出。

图 1. 运行中的 Razor 视图

在 Razor 视图引擎中使用循环

您可以在 Razor 视图中使用循环来执行重复操作。以下代码片段演示了如何在 Razor 中使用循环。 

<html>  <body>       <p>Displaying numbers 1 to 10</p>           @for(var i = 1; i <= 10; i++)             {                              <p>@i</p>            }  </body>  </html>  

在处理集合时,可以利用 foreach 循环。以下代码片段演示了如何显示与 Request.Headers 集合相关的所有键。

 <html> <body> <ul> @foreach (var k in this.Context.Request.Headers)     {          <li>@k.Key</li>     } </ul> </body> </html> 

如果想要在视图中使用模型,应该创建一个模型类,如下面给出的代码片段所示。

public class Author     {          public int Id {  get; set; }         public string FirstName {  get; set; }         public string LastName {  get; set; }     }  

为简单起见,在 Models 解决方案文件夹中创建model类。可以在视图中使用此模型,如下面给出的代码片段所示:

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

Razor 视图引擎比以前版本更高级,为从模板生成 HTML 代码提供了更友好的语法。请注意,Razor 是一个通用模板引擎——您可以在任何地方使用它来呈现 HTML。

您还可以在 ASP.NET Core MVC 中使用第三方视图引擎,例如 Spark、SharpDOM 和 NDjango。

【译稿,合作站点转载请注明原文译者和出处为.com】

copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap