ASP.NET WP - 页面对象模型



ASP.NET 中最基本的对象是页面。您可以直接访问页面对象的属性,无需任何限定对象。在前面的章节中,我们使用了一些页面对象属性和方法,例如 Layout、RenderPage 和 RenderBody。WebPageBase 类是表示 ASP.NET Razor 页面的类的基类。

页面对象模型的属性和方法

以下是页面对象的一些最常用属性。

序号 属性和描述
1

IsPost

如果客户端使用的 HTTP 数据传输方法是 POST 请求,则返回 true。

2

Layout

获取或设置布局页面的路径。

3

Output

获取页面的当前 TextWriter 对象。

4

Page

提供对页面和布局页面之间共享的数据的类似属性的访问。

5

Request

获取当前 HTTP 请求的 HttpRequest 对象。

6

Server

获取提供网页处理方法的 HttpServerUtility 对象。

以下是页面对象的一些最常用方法。

序号 方法和描述
1

ConfigurePage

在派生类中重写时,根据父网页的配置配置当前网页。

2

DefineSection

由内容页面调用以创建命名内容部分。

3

ExecutePageHierarchy()

执行一组依赖网页中的代码。

4

GetOutputWriter

返回用于呈现页面的文本写入器实例。

5

href

使用指定的参数构建 URL。

6

InitializePage

初始化当前页面。

7

IsSectionDefined

返回一个值,指示页面中是否定义了指定的节。

8

PopContext

返回并从 OutputStack 实例的顶部删除上下文。

9

PushContext

将指定的上下文插入 OutputStack 实例的顶部。

10

RenderBody()

呈现内容页面中不在命名节内的那一部分(在布局页面中)。

11

RenderPage(page)

在一个页面内呈现另一个页面的内容。

12

RenderSection(section)

呈现命名节的内容(在布局页面中)。

13

Write(object)

将对象作为 HTML 编码的字符串写入。

14

WriteLiteral

写入对象,而不先进行 HTML 编码。

让我们来看一个页面对象 Page 属性的简单示例,该属性提供对页面和布局页面之间共享数据的类似属性的访问。在此示例中,我们将使用 Page.Title 属性设置页面的标题。

以下是 MyLayoutPage.cshtml 文件的实现,其中我们设置了页面标题。

@{
   Layout = "~/_Layout.cshtml";
   page.Title = "Layout Page";
}
<h1> H1 Heading from the Layout page </h1>
<p> This is the Main Body part from the Layout page</p>

现在我们需要在 _Layout.cshtml 页面中指定相同的页面标题,如下面的代码所示。

@{ }
<!DOCTYPE html>
<html lang = "en">
   
   <head>
      <title>@Page.Title</title>
      <link href = "@Href("/Styles/Site.css")" rel = "stylesheet" type = "text/css" />
   </head>
   
   <body>
      @RenderPage("/Shared/_Header.cshtml")
      <div id = "main">@RenderBody()</div>
      @RenderPage("/Shared/_Footer.cshtml")
   </body>

</html>

让我们运行应用程序并指定以下 URL:https://127.0.0.1:46023/MyLayoutPage,然后您将看到以下页面。

Layout Cshtm

如您所见,标题现在是布局页面,我们使用页面对象的 Page 属性设置了它。

让我们来看另一个简单的示例,在其中我们将使用页面对象的 Request 属性。

@{
   Layout = "~/_Layout.cshtml";
   Page.Title = "Layout Page";
   var path = Request.FilePath;
   var pageUrl = this.Request.Url;
}

<h1> H1 Heading from the Layout page </h1>
<p> This is the Main Body part from the Layout page</p>
<a href = "@pageUrl">My page</a>
<p>Page Url: @pageUrl</p>
<p>File Path: @path</p>

您可以使用页面的 Request 对象获取页面的文件路径和 URL。让我们再次运行您的应用程序,您将看到以下输出。

Heading Page
广告