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 然后您将看到以下页面。
正如您所看到的,标题现在是一个布局页面,我们使用 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。 让我们再次运行您的应用程序,您将看到以下输出。

