ASP.NET WP - 页面对象模型

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

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

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

S.No 属性和描述
1

IsPost

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

2

Layout

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

3

Output

获取页面当前的 TextWriter 对象。

4

Page

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

5

Request

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

6

Server

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

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

S.No 方法描述
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 − http://localhost:46023/MyLayoutPage 然后您将看到以下页面。

布局 Cshtm

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

让我们看一下另一个简单的示例,其中我们将使用 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。 让我们再次运行您的应用程序,您将看到以下输出。

标题页