您现在的位置是:亿华云 > 应用开发
如何在 ASP.NET Core MVC 中使用 Razor 视图引擎
亿华云2025-10-09 06:57:51【应用开发】9人已围观
简介【.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 浏览器中呈现。模板解析器是一个将视图编译成可执行代码的解析引擎。云南idc服务商
您还可以在 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】
很赞哦!(9924)