
etc
.NET Core 3.0:Razor 视图不会在更改时自动重新编译
在使用 .NET Core 3.0 开发应用程序时,我们经常使用 Razor 视图来创建动态的 Web 页面。然而,令人遗憾的是,与之前的版本不同,.NET Core 3.0 中的 Razor 视图在更改时不会自动重新编译。这意味着我们必须手动重新编译视图,以使更改生效。为了更好地理解这个问题,让我们来看一个简单的示例。假设我们有一个名为 "Index.cshtml" 的 Razor 视图文件,其中包含一些 HTML 代码和 C# 代码。在开发过程中,我们可能会频繁地修改这个视图文件,以满足项目需求。然而,当我们修改了 "Index.cshtml" 文件并保存后,我们会发现这些更改并没有立即生效。相反,我们必须手动重新编译视图,才能看到更改后的结果。这对于开发人员来说是一个不便之处,特别是当频繁进行视图修改时。为了解决这个问题,我们可以使用 Visual Studio 提供的 "Edit and Continue" 功能。通过启用这个功能,我们可以在不重新编译整个应用程序的情况下,即时预览对 Razor 视图的更改。要启用 "Edit and Continue" 功能,我们可以按照以下步骤操作:1. 打开 Visual Studio,并导航到 "工具" > "选项" > "调试" > "编辑和继续"。2. 在 "编辑和继续" 选项卡中,勾选 "启用编辑并继续" 复选框。现在,当我们对 Razor 视图进行修改并保存后,我们将能够立即看到更改后的结果,而无需手动重新编译视图。示例代码:csharpusing Microsoft.AspNetcore.Mvc.RazorPages;namespace MyWebApp.Pages{ public class IndexModel : PageModel { public string Message { get; set; } public void OnGet() { Message = "Hello, World!"; } }}html@page@model IndexModel<!DOCTYPE html><html><head> <title>Index</title></head><body> <h1>@Model.Message</h1></body></html>在上面的示例代码中,我们创建了一个简单的 Razor 页面,其中包含一个名为 "IndexModel" 的页面模型和一个带有 "Message" 属性的 Razor 视图。当我们访问这个页面时,页面模型的 "OnGet" 方法会被调用,并将 "Hello, World!" 分配给 "Message" 属性。在 Razor 视图中,我们可以使用 "@Model.Message" 来显示这个属性的值。通过这个例子,我们可以看到如何创建一个基本的 Razor 页面,并了解到在 .NET Core 3.0 中 Razor 视图不会自动重新编译的问题。虽然这对开发人员来说可能有些不便,但通过启用 "Edit and Continue" 功能,我们仍然可以实时预览对 Razor 视图的更改。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号