ASP Net - ASP.NET Web Pages - Objects


Web Pages is much often about Objects.


The Page Object


You have already seen some Page Object methods in use:


  • @RenderPage("header.cshtml")
  •  
  • @RenderBody()

In the previous chapter you saw two Page Object properties being used (IsPost, and Request):


  • If (IsPost) {
  •  
  • if (Request["Choice"] != null) {

Some Page Object Methods


  • href = Builds a URL using the specified parameters
  • RenderBody() = Renders the portion of a content page that is not within a named section (In layout pages)
  • RenderSection(section) = Renders the content of a named section (In layout pages)
  • Write(object) = Writes the object as an HTML-encoded string
  • WriteLiteral = Writes an object without HTML-encoding it first.

Some Page Object Properties


  • IsPost = Returns true if the HTTP data transfer method used by the client is a POST request
  • Layout = Gets or sets the path of a layout page
  • Page = Provides property-like access to data shared between pages and layout pages
  • Request = Gets the HttpRequest object for the current HTTP request
  • Server = Gets the HttpServerUtility object that provides web-page processing methods

The Page Property (of the Page Object)


The Page property of the Page Object, provides property-like access to data shared between pages and layout pages.


You can use (add) your own properties to the Page property:


  • Page.Title
  • Page.Version
  • Page.anythingyoulike

The pages property is very helpful. For instance, it makes it possible to set the page title in content files, and use it in the layout file:


Home.cshtml


  • @{
  • Layout="~/Shared/Layout.cshtml";
  • Page.Title="Home Page"
  • }
  • h1>Welcome to W3Schools (put a < in front of h)
  • h2>Web Site Main Ingredients (put a < in front of h)
  • A Home Page (Default.cshtml)

  • A Layout File (Layout.cshtml)

  • A Style Sheet (Site.css)


Layout.cshtml


  • !DOCTYPE html> (put a < in front)
  • html> (put a < in front)
  • head> (put a < in front)
  • title>@Page.Title (put a < in front)
  • /head> (put a < in front)
  • body> (put a < in front)
  • @RenderBody()
  • /body> (put a < in front)
  • /html> (put a < in front)

Go back