Учебники

ASP.NET WP — объектная модель страницы

Основным объектом в ASP.NET является страница. Вы можете получить доступ к свойствам объекта страницы напрямую, без какого-либо квалифицирующего объекта. В предыдущих главах мы использовали некоторые свойства и методы объекта страницы, такие как Layout, RenderPage и RenderBody. Класс WebPageBase является базовым классом для классов, представляющих страницу ASP.NET Razor.

Свойства и методы объектной модели страницы

Ниже приведены некоторые из наиболее часто используемых свойств объекта Page Object.

S.No Описание недвижимости
1

IsPost

Возвращает true, если используемый клиентом метод передачи данных HTTP является запросом POST.

2

раскладка

Получает или задает путь страницы макета.

3

Выход

Получает текущий объект TextWriter для страницы.

4

страница

Обеспечивает подобный свойствам доступ к данным, совместно используемым между страницами и страницами макета

5

Запрос

Получает объект HttpRequest для текущего HTTP-запроса.

6

сервер

Получает объект HttpServerUtility, который предоставляет методы обработки веб-страниц.

IsPost

Возвращает true, если используемый клиентом метод передачи данных HTTP является запросом POST.

раскладка

Получает или задает путь страницы макета.

Выход

Получает текущий объект TextWriter для страницы.

страница

Обеспечивает подобный свойствам доступ к данным, совместно используемым между страницами и страницами макета

Запрос

Получает объект HttpRequest для текущего HTTP-запроса.

сервер

Получает объект HttpServerUtility, который предоставляет методы обработки веб-страниц.

Ниже приведены некоторые из наиболее часто используемых методов объекта Page Object.

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 (страница)

Отображает содержимое одной страницы на другой странице

12

RenderSection (раздел)

Визуализирует содержимое именованного раздела (на страницах макета)

13

Написать (объект)

Записывает объект как строку в кодировке HTML

14

WriteLiteral

Пишет объект без HTML-кодирования его первым.

ConfigurePage

При переопределении в производном классе настраивает текущую веб-страницу на основе конфигурации родительской веб-страницы.

DefineSection

Вызывается страницами содержимого для создания именованных разделов содержимого.

ExecutePageHierarchy ()

Выполняет код в наборе зависимых веб-страниц.

GetOutputWriter

Возвращает экземпляр модуля записи текста, который используется для визуализации страницы.

HREF

Создает URL с использованием указанных параметров

InitializePage

Инициализирует текущую страницу.

IsSectionDefined

Возвращает значение, указывающее, определен ли указанный раздел на странице.

PopContext

Возвращает и удаляет контекст из верхней части экземпляра OutputStack.

PushContext

Вставляет указанный контекст в начало экземпляра OutputStack.

RenderBody ()

Отрисовывает часть страницы содержимого, которая не находится в именованном разделе (на страницах макета)

RenderPage (страница)

Отображает содержимое одной страницы на другой странице

RenderSection (раздел)

Визуализирует содержимое именованного раздела (на страницах макета)

Написать (объект)

Записывает объект как строку в кодировке HTML

WriteLiteral

Пишет объект без HTML-кодирования его первым.

Давайте рассмотрим простой пример свойства Page объекта Page Object, который обеспечивает подобный свойствам доступ к данным, которые совместно используются страницами и страницами макета. В этом примере мы установим заголовок страницы, используя свойство 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.

Давайте рассмотрим еще один простой пример, в котором мы будем использовать свойство Request объекта Page.

@{
   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>

Вы можете получить путь к файлу страницы и URL, используя объект запроса страницы. Давайте снова запустим ваше приложение, и вы увидите следующий результат.