Asp.net-wp-page-object-model

提供:Dev Guides
移動先:案内検索

ASP.NET WP-ページオブジェクトモデル

ASP.NETの最も基本的なオブジェクトはページです。 修飾オブジェクトなしで、ページオブジェクトのプロパティに直接アクセスできます。 前の章では、レイアウト、RenderPage、RenderBodyなどのページオブジェクトのプロパティとメソッドの一部を使用しました。 WebPageBase Class は、ASP.NET Razorページを表すクラスの基本クラスです。

ページオブジェクトモデルのプロパティとメソッド

以下は、ページオブジェクトの最も一般的に使用されるプロパティの一部です。

S.No Property & Description
1

IsPost

クライアントが使用するHTTPデータ転送メソッドがPOST要求である場合、trueを返します。

2

レイアウト

レイアウトページのパスを取得または設定します。

3

出力

ページの現在のTextWriterオブジェクトを取得します。

4

Page

ページとレイアウトページ間で共有されるデータへのプロパティのようなアクセスを提供します

5

要求

現在のHTTP要求のHttpRequestオブジェクトを取得します。

6

サーバ

Webページ処理メソッドを提供するHttpServerUtilityオブジェクトを取得します。

以下は、Page Objectの最も一般的に使用されるメソッドの一部です。

S.No Method & Description
1

ConfigurePage

派生クラスでオーバーライドされると、親Webページの構成に基づいて現在のWebページを構成します。

2

DefineSection

名前付きコンテンツセクションを作成するためにコンテンツページによって呼び出されます。

3

ExecutePageHierarchy()

一連の依存Webページでコードを実行します。

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.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を取得できます。 アプリケーションを再度実行すると、次の出力が表示されます。

見出しページ