ZetCode

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 中创建和使用视图。

Program.cs
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 方法注册了视图所需的各种服务。

Controllers/HomeController.cs
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 的视图。

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# 代码无缝混合,以生成动态内容。

该示例展示了视图如何将表示逻辑与业务逻辑分离。视图保持对显示的关注,而控制器则处理应用程序流程。

来源

Microsoft ASP.NET 视图文档

在本文中,我们探讨了 ASP.NET 8 中的视图。视图是强大的组件,可实现 MVC 应用程序中关注点的清晰分离。

作者

我叫 Jan Bodnar,是一位热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有十多年的经验。

列出所有 ASP.NET 教程