ASP.NET WP - 页面对象模型

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

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

以下是Page Object的一些最常用的属性.

S .NoProperty & Description
1

IsPost

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

2

Layout

获取或设置布局的路径页.

3

Output

获取页面的当前TextWriter对象.

4

Page

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

5

Request

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

6

Server

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

以下是Page Ob最常用的一些方法ject.

S.No方法&说明
1

ConfigurePage

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

2

DefineSection

按内容调用用于创建命名内容部分的页面.

3

ExecutePageHierarchy()

在一组相关网页中执行代码.

4

GetOutputWriter

返回用于呈现页面的文本编写器实例.

5

href

使用指定的参数构建URL

6

InitializePage

初始化当前页面.

7

IsSectionDefin ed

返回一个值,指示是否在页面中定义了指定的部分.

8

PopContext

返回并删除上下文从OutputStack实例的顶部开始.

9

PushContext

在OutputStack实例的顶部插入指定的上下文.

10

RenderBody()

呈现内容页面中不在命名区域内的部分(在布局页面中)

11

RenderPage(page)

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

12

RenderSection (section)

呈现命名部分的内容(在布局页面中)

13

Write(object)

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

14

WriteLiteral

写一个没有HTML的对象 - 首先对它进行编码.

让我们看一下Page Object的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.让我们再次运行你的应用程序,你会看到以下输出.

标题页