- ASP.NET WP 教程
- ASP.NET WP - 首页
- ASP.NET WP - 概述
- ASP.NET WP - 环境设置
- ASP.NET WP - 入门
- ASP.NET WP - 视图引擎
- 项目文件夹结构
- ASP.NET WP - 全局页面
- ASP.NET WP - 编程概念
- ASP.NET WP - 布局
- ASP.NET WP - 使用表单
- ASP.NET WP - 页面对象模型
- ASP.NET WP - 数据库
- ASP.NET WP - 向数据库添加数据
- ASP.NET WP - 编辑数据库数据
- ASP.NET WP - 删除数据库数据
- ASP.NET WP - WebGrid
- ASP.NET WP - 图表
- ASP.NET WP - 处理文件
- ASP.NET WP - 处理图像
- ASP.NET WP - 处理视频
- ASP.NET WP - 添加电子邮件
- ASP.NET WP - 添加搜索
- 向网站添加社交网络功能
- ASP.NET WP - 缓存
- ASP.NET WP - 安全性
- ASP.NET WP - 发布
- ASP.NET WP 有用资源
- ASP.NET WP - 快速指南
- ASP.NET WP - 有用资源
- ASP.NET WP - 讨论
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,然后您将看到以下页面。
如您所见,标题现在是布局页面,我们使用页面对象的 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。让我们再次运行您的应用程序,您将看到以下输出。