推荐答案
// www.javascriptcn.com code example
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
@functions {
public class IndexModel : PageModel
{
public void OnGet()
{
// 处理GET请求的逻辑
}
}
}本题详细解读
Razor 页面的基本结构
Razor 页面是 ASP.NET Core 中的一种轻量级页面模型,用于构建动态网页。每个 Razor 页面通常包含一个 .cshtml 文件和一个 .cs 文件。.cshtml 文件用于定义页面的 HTML 结构和 Razor 语法,而 .cs 文件则用于定义页面的逻辑。
@page 指令
@page 指令是 Razor 页面的核心指令之一,它告诉 ASP.NET Core 这是一个 Razor 页面,并且该页面可以通过 URL 直接访问。@page 指令必须放在 .cshtml 文件的最顶部。
@model 指令
@model 指令用于指定与该 Razor 页面关联的模型类。模型类通常定义在 .cs 文件中,并且继承自 PageModel 类。通过 @model 指令,可以在 Razor 页面中访问模型类的属性和方法。
@functions 块
@functions 块允许在 Razor 页面中直接定义 C# 代码。通常,@functions 块用于定义页面模型类或页面处理程序方法。在上面的示例中,IndexModel 类定义在 @functions 块中,并且包含一个 OnGet 方法,用于处理页面的 GET 请求。
页面处理程序方法
页面处理程序方法是 Razor 页面中用于处理 HTTP 请求的方法。常见的页面处理程序方法包括 OnGet、OnPost、OnPut、OnDelete 等。这些方法通常以 On 开头,后跟 HTTP 方法名。例如,OnGet 方法用于处理 GET 请求,OnPost 方法用于处理 POST 请求。
视图数据
ViewData 是一个字典对象,用于在 Razor 页面和页面模型之间传递数据。在上面的示例中,ViewData["Title"] 用于设置页面的标题,该标题可以在布局页面中使用。
总结
Razor 页面提供了一种简单而强大的方式来构建动态网页。通过 @page 指令、@model 指令、@functions 块以及页面处理程序方法,开发者可以轻松地创建功能丰富的 Web 应用程序。