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 应用程序中关注点的清晰分离。