ASP.NET 视图
最后修改于 2025 年 4 月 3 日
在本文中,我们将探讨 ASP.NET 8 中的视图。视图是 MVC 架构中的重要组成部分,负责处理 Web 应用程序的表示层。
ASP.NET 视图负责渲染用户界面。它们与控制器协同工作,向用户显示数据并收集用户输入。视图使用 Razor 语法将 HTML 与 C# 代码结合起来。
基本定义
ASP.NET MVC 中的视图是一个生成 HTML 响应的模板。视图通常与控制器操作相关联,并使用 .cshtml 文件扩展名。
视图可以包含 HTML 标记、Razor 语法和 C# 代码。它们支持布局以实现一致的页面结构,并支持部分视图以实现可重用组件。视图在处理特定模型时是强类型的。
Razor 视图引擎在运行时处理视图。它将控制器的数据与 HTML 模板结合起来,以生成动态网页。视图支持标签辅助器以实现更简洁的语法。
ASP.NET 视图示例
以下示例演示了如何在 ASP.NET MVC 中创建和使用视图。
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); var app = builder.Build(); app.UseStaticFiles(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();
这会设置一个支持视图的 ASP.NET MVC 应用程序。AddControllersWithViews
方法注册了视图所需的各种服务。
using Microsoft.AspNetCore.Mvc; public class HomeController : Controller { public IActionResult Index() { var model = new WelcomeModel { Title = "Welcome to ASP.NET", Message = "This is a view example in .NET 8", CurrentDate = DateTime.Now }; return View(model); } } public class WelcomeModel { public string Title { get; set; } public string Message { get; set; } public DateTime CurrentDate { get; set; } }
控制器创建一个模型并将其传递给 View 方法。根据约定,这将在 Views/Home 文件夹中查找名为 Index.cshtml 的视图。
@model WelcomeModel @{ ViewData["Title"] = Model.Title; } <div class="text-center"> <h1>@Model.Title</h1> <p>@Model.Message</p> <p>Current date: @Model.CurrentDate.ToString("D")</p> @if (Model.CurrentDate.DayOfWeek == DayOfWeek.Saturday || Model.CurrentDate.DayOfWeek == DayOfWeek.Sunday) { <p>It's the weekend!</p> } else { <p>It's a weekday.</p> } </div>
此视图演示了多项 Razor 功能。@model
指令指定了模型类型。我们使用 @Model
访问模型属性。
该视图使用 @if
语句包含 C# 逻辑,并使用 ViewData 来设置页面标题。Razor 语法将 HTML 与 C# 代码无缝混合,以生成动态内容。
该示例展示了视图如何将表示逻辑与业务逻辑分离。视图保持对显示的关注,而控制器则处理应用程序流程。
来源
在本文中,我们探讨了 ASP.NET 8 中的视图。视图是强大的组件,可实现 MVC 应用程序中关注点的清晰分离。