ASP.NET Core Razor Pages基础介绍
ASP.NET Core Razor Pages是ASP.NET Core框架中用于构建网页应用的一种轻量级编程模型,它基于页面驱动的开发模式,将页面的视图和逻辑代码绑定在同一个页面的关联文件中,相比传统的MVC模式,开发流程更简洁,适合快速构建中小型网页应用。在C#环境下使用Razor Pages开发,开发者不需要单独拆分控制器和视图,降低了入门的学习成本。
环境准备
在开始开发之前,需要先完成开发环境的配置。首先确保本地安装了.NET SDK,建议选择较新的长期支持版本。安装完成后,打开命令行工具,执行以下命令创建Razor Pages项目:
# 创建ASP.NET Core Razor Pages项目 dotnet new webapp -o RazorPagesDemo # 进入项目目录 cd RazorPagesDemo # 运行项目 dotnet run
项目创建完成后,可以看到默认的目录结构,其中Pages文件夹是存放Razor页面的核心目录,每个页面由.cshtml视图文件和对应的.cshtml.cs页面模型文件组成。
创建第一个Razor页面
我们可以在Pages目录下新建一个自定义页面,比如创建一个名为Hello的页面。首先在Pages文件夹下添加Hello.cshtml文件,内容如下:
@page
@model RazorPagesDemo.Pages.HelloModel
<h2>欢迎来到Razor页面</h2>
<p>当前时间:@DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")</p>
同时需要创建对应的Hello.cshtml.cs页面模型文件,代码如下:
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace RazorPagesDemo.Pages
{
public class HelloModel : PageModel
{
public void OnGet()
{
// 页面GET请求处理逻辑
}
}
}
运行项目后,访问/Hello路径就可以看到页面展示的内容,其中@page指令标识这是一个Razor页面,@model指令指定当前页面对应的页面模型类。
Razor页面数据绑定
Razor Pages支持多种数据绑定方式,最常用的的是属性绑定。我们可以在页面模型中定义公共属性,通过[BindProperty]特性标记,实现页面和模型之间的数据传递。以下是一个简单的表单提交示例:
首先修改Hello.cshtml.cs文件,添加绑定属性和处理方法:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace RazorPagesDemo.Pages
{
public class HelloModel : PageModel
{
[BindProperty]
public string UserName { get; set; }
public string Message { get; set; }
public void OnGet()
{
}
public IActionResult OnPost()
{
if (!string.IsNullOrEmpty(UserName))
{
Message = $"你好,{UserName},欢迎学习Razor Pages开发";
}
else
{
Message = "请输入用户名";
}
return Page();
}
}
}
然后修改Hello.cshtml文件,添加表单内容:
@page
@model RazorPagesDemo.Pages.HelloModel
<h2>用户信息提交</h2>
<form method="post">
<div>
<label>用户名:</label>
<input asp-for="UserName" />
</div>
<button type="submit">提交</button>
</form>
@if (!string.IsNullOrEmpty(Model.Message))
{
<p>@Model.Message</p>
}
在这个示例中,表单提交后会将UserName属性的值传递到页面模型的OnPost方法中,处理完成后返回到当前页面,展示对应的提示信息。
常见问题解决
- 页面访问404:检查.cshtml文件是否添加了@page指令,同时确认访问的路径和文件名匹配,区分大小写。
- 数据绑定失败:确认属性是否添加了[BindProperty]特性,同时表单元素的name属性和模型属性名一致。
- 页面模型找不到:检查.cshtml文件中@model指令指定的命名空间和类名是否正确,和.cshtml.cs文件中的类定义匹配。
总结
ASP.NET Core Razor Pages为C#开发者提供了一种简洁高效的页面开发方式,通过页面和模型文件的关联,让开发逻辑更清晰。入门阶段只要掌握项目创建、页面结构、数据绑定这几个核心知识点,就可以完成大部分基础页面的开发。后续还可以进一步学习Razor语法、路由配置、依赖注入等进阶内容,提升开发能力。
ASP.NET_Core_Razor_PagesC#Razor页面开发页面模型修改时间:2026-06-22 17:51:56