Razor页面是ASP.NET Core中将C#代码嵌入HTML的轻量级开发方式,通过.cshtml文件实现前后端结合,使用@page、@model等指令定义页面和模型,支持动态数据渲染与表单处理,简化中小型应用开发流程。

Razor页面是ASP.NET Core中一种轻量级的页面开发方式,它允许你将C#代码嵌入到HTML中,从而创建动态Web页面。简单来说,它就是一种将前端展示和后端逻辑结合在一起的技术。
解决方案
Razor页面本质上是
.cshtml
创建Razor页面:
使用Razor页面:
打开
MyPage.cshtml
@page
@model MyWebApp.Pages.MyPageModel
@{
ViewData["Title"] = "My Page";
}
<h1>@ViewData["Title"]</h1>
<p>This is my Razor page.</p>
<p>Current time: @DateTime.Now</p>
<ul>
@foreach (var item in Model.MyList)
{
<li>@item</li>
}
</ul>@page
@model
PageModel
@{ ... }@ViewData["Title"]
ViewData
ViewData
@DateTime.Now
@foreach
Model.MyList
MyList
页面模型:
为了让Razor页面更具结构性,通常会创建一个与页面关联的页面模型类。 在
MyPage.cshtml
MyPage.cshtml.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace MyWebApp.Pages
{
public class MyPageModel : PageModel
{
public List<string> MyList { get; set; } = new List<string> { "Item 1", "Item 2", "Item 3" };
public void OnGet()
{
// 在页面加载时执行的逻辑
}
}
}MyPageModel
PageModel
MyList
OnGet()
OnPost()
运行项目:
运行ASP.NET Core项目,然后在浏览器中访问
/MyPage
Razor Pages简化了小型到中型Web应用的开发。与传统的MVC模式相比,它减少了样板代码,并将视图和控制器逻辑紧密地结合在一起。对于简单的页面,你不需要单独的控制器类,所有逻辑都可以在页面模型中处理。这使得代码更易于阅读和维护。当然,对于更复杂的应用程序,MVC可能仍然是更好的选择,因为它提供了更好的分离关注点。
要在Razor页面中处理表单提交,你需要使用
OnPost
<form method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name" />
<button type="submit">Submit</button>
</form>
<p>You entered: @Model.Name</p>然后在你的页面模型中,添加一个
Name
OnPost
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace MyWebApp.Pages
{
public class MyPageModel : PageModel
{
[BindProperty]
public string Name { get; set; }
public void OnPost()
{
// 在这里处理表单提交
// 可以访问 this.Name 来获取用户输入的值
}
}
}[BindProperty]
Name
Name
OnPost()
this.Name
OnPost
this.Name
你还可以使用不同的
OnPost
OnPostSubmit1()
OnPostSubmit2()
依赖注入是ASP.NET Core的核心特性之一,你可以在Razor页面中使用它来访问各种服务。 例如,假设你有一个服务叫做
IMyService
public interface IMyService
{
string GetMessage();
}
public class MyService : IMyService
{
public string GetMessage()
{
return "Hello from MyService!";
}
}首先,你需要在
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddTransient<IMyService, MyService>();
}然后,你可以在你的页面模型中使用构造函数注入来获取这个服务:
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace MyWebApp.Pages
{
public class MyPageModel : PageModel
{
private readonly IMyService _myService;
public MyPageModel(IMyService myService)
{
_myService = myService;
}
public string Message { get; set; }
public void OnGet()
{
Message = _myService.GetMessage();
}
}
}private readonly IMyService _myService;
public MyPageModel(IMyService myService)
Message = _myService.GetMessage();
OnGet
最后,你可以在Razor页面中使用
Message
@page
@model MyWebApp.Pages.MyPageModel
@{
ViewData["Title"] = "My Page";
}
<h1>@ViewData["Title"]</h1>
<p>@Model.Message</p>总的来说,Razor页面提供了一种简洁高效的方式来构建ASP.NET Core Web应用。它简化了开发流程,并提供了强大的功能来处理各种Web开发任务。
以上就是C#的Razor页面是什么?如何创建和使用?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号