7.3 Web Pages, Navigation Menus & Content Snippets

Key Takeaways

  • A Web Page in Power Pages consists of a parent Root Page record and one or more localized Content Page records (adx_webpage) per enabled website language.
  • Page URL routing is resolved hierarchically by concatenating Partial URLs (slugs) from the root Home page down through each parent page in the hierarchy.
  • Navigation menus are driven by Web Link Sets (adx_weblinkset) containing ordered Web Links (adx_weblink) that can link to internal Web Pages, external URLs, or child submenu dropdowns.
  • Content Snippets (adx_contentsnippet) provide localized, reusable text or HTML fragments that can be dynamically rendered using Liquid tags ({% snippet 'SnippetName' %}).
  • Web Files (adx_webfile) store static downloadable assets (PDFs, images, CSS, JavaScript) in Dataverse attachments or Azure Blob Storage, secured by Web Page Access Control Rules.
Last updated: August 2026

Web Pages, Navigation Menus & Content Snippets

Behind every intuitive Power Pages user experience lies a robust Dataverse metadata architecture. Rather than storing web pages as flat static files on a web server, Power Pages operates as a dynamic, database-driven engine. Every page, navigation link, localized text snippet, downloadable asset, and style rule exists as a discrete record in Microsoft Dataverse.

For the PL-200: Microsoft Power Platform Functional Consultant exam, functional consultants must master the underlying metadata entities that power website content: Web Pages (adx_webpage), Web Link Sets (adx_weblinkset), Content Snippets (adx_contentsnippet), and Web Files (adx_webfile), as well as how URL routing and localized content resolution operate across multi-lingual deployments.


1. Web Page Architecture & Localized Content Records

In Power Pages, a single "page" on the website is actually represented in Dataverse by a parent-child record pair to natively support multi-language localization without duplicating page configuration.

+-----------------------------------------------------------------------------------------+
|                         WEB PAGE DUAL-RECORD METADATA SCHEMA                            |
|                                                                                         |
|   [ROOT WEB PAGE RECORD: adx_webpage]                                                   |
|   - Name: "Contact Us (Root)"                                                           |
|   - Is Root: TRUE (adx_isroot = true)                                                   |
|   - Partial URL: "contact-us"                                                           |
|   - Parent Page: [Home Root Web Page]                                                   |
|   - Page Template: [Web Template: Default Page Layout]                                  |
|                     |                                                                   |
|                     +---------------------------------+                                 |
|                     |                                 |                                 |
|                     v                                 v                                 |
|   [CONTENT PAGE: English (en-US)]   [CONTENT PAGE: French (fr-FR)]                      |
|   - Name: "Contact Us"              - Name: "Contactez-nous"                            |
|   - Is Root: FALSE                  - Is Root: FALSE                                    |
|   - Language: English (1033)        - Language: French (1036)                           |
|   - Title: "Contact Support Team"   - Title: "Contactez le support"                     |
|   - Copy (HTML): "<p>Email us</p>"  - Copy (HTML): "<p>Envoyez un courriel</p>"         |
|   - Publishing State: Published     - Publishing State: Published                       |
+-----------------------------------------------------------------------------------------+

The Root Page vs. Content Page Relationship

  1. Root Web Page Record (adx_isroot = true):
    • Defines the structural identity of the page within the website hierarchy.
    • Holds language-agnostic properties: the Partial URL slug, the associated Page Template, the Parent Page pointer, and the master Page Access Control Rules.
  2. Content Web Page Record (adx_isroot = false):
    • Child record linked to the Root Page via the adx_rootwebpageid lookup.
    • Bound to a specific Website Language (adx_websitelanguage).
    • Stores localized content: the translated Title, localized Copy (HTML) content body, meta description, and the localized Publishing State (e.g., Draft vs. Published).

Hierarchical URL Routing & Partial URLs

Power Pages resolves website URLs dynamically based on the hierarchical chain of Partial URLs (slugs) from the Home page down to the requested leaf page.

+-----------------------------------------------------------------------------+
|                        HIERARCHICAL URL PATH RESOLUTION                     |
|                                                                             |
|   [HOME ROOT PAGE]               Partial URL: "/"                           |
|         |                        -> https://contoso.com/                    |
|         v                                                                   |
|   [SERVICES PAGE]                Partial URL: "services"                    |
|         |                        -> https://contoso.com/services/           |
|         v                                                                   |
|   [CONSULTING PAGE]              Partial URL: "consulting"                  |
|         |                        -> https://contoso.com/services/consulting/|
|         v                                                                   |
|   [BOOKING SUBPAGE]              Partial URL: "schedule"                    |
|                                  -> https://contoso.com/services/           |
|                                     consulting/schedule/                    |
+-----------------------------------------------------------------------------+

[!CAUTION] Partial URL Constraints (PL-200 Exam):

  • Partial URLs must contain only lowercase alphanumeric characters, numbers, and hyphens (-).
  • Spaces, underscores, and special punctuation characters (?, &, %, /) are invalid.
  • If a parent page's Partial URL is modified, all child and descendant page URLs change immediately.
  • If a parent page is unpublished (set to Draft), all child subpages become unreachable (returning HTTP 404).

2. Navigation Menus & Web Link Sets

Navigation across a Power Pages site is governed by Web Link Sets (adx_weblinkset) containing ordered Web Links (adx_weblink).

+-----------------------------------------------------------------------------+
|                     WEB LINK SET & WEB LINK ARCHITECTURE                    |
|                                                                             |
|   [WEB LINK SET: "Default" (Primary Top Navbar)]                            |
|   ├── [WEB LINK: Home] ---------> Targets: Root Web Page (/)                |
|   ├── [WEB LINK: Services] -----> Targets: Web Page (/services)             |
|   │   ├── [CHILD LINK: Repair] -> Targets: Web Page (/services/repair)      |
|   │   └── [CHILD LINK: Inspect]-> Targets: Web Page (/services/inspect)     |
|   ├── [WEB LINK: Portal Help] --> Targets: External URL (https://learn.ms)  |
|   └── [WEB LINK: My Profile] ---> Targets: System Page (~/Profile)          |
|                                                                             |
|   [WEB LINK SET: "Footer Navigation"]                                       |
|   ├── [WEB LINK: Privacy Policy] -> Targets: Web Page (/privacy)            |
|   ├── [WEB LINK: Terms of Use] ---> Targets: Web Page (/terms)              |
|   └── [WEB LINK: Contact Us] -----> Targets: Web Page (/contact)            |
+-----------------------------------------------------------------------------+

Web Link Target Types

A Web Link record can route users to several distinct target types:

  • Web Page: Internal link to a Dataverse adx_webpage record (recommended for portal pages, ensuring automatic URL updates if page slugs change).
  • URL: Absolute external URL (e.g., https://partner.contoso.com) or relative system URL.
  • Child Web Links: Nesting child Web Links under a parent Web Link creates a dropdown flyout menu in the navigation bar.
  • Disable Page Validation: When enabled, the link remains visible in the menu even if the target page has restricted permissions.

Breadcrumbs Navigation

Breadcrumbs provide secondary navigational trails near the top of the page canvas (e.g., Home > Services > Equipment Maintenance > Schedule). In Power Pages:

  • Breadcrumbs are generated automatically by inspecting the adx_parentpageid hierarchy chain.
  • To hide breadcrumbs on specific pages, makers can use a Page Template configured without breadcrumbs or add CSS rules (.breadcrumb { display: none; }).

3. Content Snippets: Multi-Lingual Reusable Boilerplate

Content Snippets (adx_contentsnippet) are small, reusable fragments of plain text or formatted HTML stored in Dataverse. They provide a centralized repository for boilerplate text, headers, copyright notices, and localized terminology used across multiple web pages and templates.

+-----------------------------------------------------------------------------+
|                     CONTENT SNIPPET METADATA & RENDERING                    |
|                                                                             |
|   [DATAVERSE CONTENT SNIPPET: "Footer/Copyright"]                           |
|   - Name: "Footer/Copyright"                                                |
|   - Type: "HTML" (or "Text")                                                |
|   - English Value (1033): "<p>© 2026 Contoso Inc. All rights reserved.</p>" |
|   - French Value (1036):  "<p>© 2026 Contoso Inc. Tous droits réservés.</p>"|
|                     |                                                       |
|                     v                                                       |
|   [RENDERED IN WEB TEMPLATE VIA LIQUID]                                     |
|   Syntax Option 1:  {{ snippets["Footer/Copyright"] }}                      |
|   Syntax Option 2:  {% snippet 'Footer/Copyright' %}                        |
|                     |                                                       |
|                     v                                                       |
|   [RUN-TIME HTML OUTPUT (en-US)]:                                           |
|   <footer>                                                                  |
|     <p>© 2026 Contoso Inc. All rights reserved.</p>                         |
|   </footer>                                                                 |
+-----------------------------------------------------------------------------+

Key Attributes & Types of Content Snippets

AttributeValuesOperational Purpose
NameText String (e.g., Header/Title, Account/SignIn/Message)Unique logical identifier referenced in Liquid templates and code.
TypeText or HTMLDefines rendering behavior: Text strips HTML markup for plain string labels; HTML renders formatted rich text markup.
LanguageWebsite Language lookupAssociates the snippet value with a specific portal language for automatic localization.
ValueString / Rich HTMLThe actual text or markup content rendered on the website.

Liquid Templating Syntax for Content Snippets

Developers and functional consultants insert Content Snippets into Web Templates or Web Pages using Liquid syntax:

  • Standard Snippet Tag: {% snippet 'Navbar/Tagline' %}
  • Object Lookup Expression: {{ snippets['Navbar/Tagline'] }}
  • Editable Snippets: When logged into the portal with administrative editing privileges, Content Snippets rendered on the front end display inline editing widgets, allowing business users to update copy directly on the page without opening Dataverse.

4. Web Files: Static Assets & Document Management

Web Files (adx_webfile) represent downloadable static binary assets stored in Dataverse. They host files such as PDFs, downloadable product catalogs, user manuals, custom CSS files, JavaScript scripts, and image assets (.png, .svg, .ico).

+-----------------------------------------------------------------------------+
|                        WEB FILE ARCHITECTURE & SECURITY                     |
|                                                                             |
|   [WEB FILE RECORD: adx_webfile]                                            |
|   - Name: "Vendor-Security-Guidelines.pdf"                                  |
|   - Partial URL: "vendor-guidelines.pdf"                                    |
|   - Parent Page: [Vendors Root Page (/vendors)]                             |
|   - MIME Type: "application/pdf"                                            |
|   - Storage Location: Dataverse Note Attachment (annotation)                |
|                     |                                                       |
|                     v                                                       |
|   [URL ACCESS PATH: https://contoso.com/vendors/vendor-guidelines.pdf]      |
|                     |                                                       |
|                     v                                                       |
|   [SECURITY EVALUATION VIA WEB PAGE ACCESS CONTROL RULES]                   |
|   - Inspects Parent Page Permissions                                        |
|   - If User has 'Vendor Partner' Web Role -> DOWNLOAD ALLOWED (200 OK)      |
|   - If User is Anonymous                  -> ACCESS DENIED (403 Forbidden)  |
+-----------------------------------------------------------------------------+

Web File Attributes & Storage Options

  • Partial URL: The filename and extension accessible via the browser URL (e.g., catalog-2026.pdf).
  • Parent Page: Associates the web file with a specific node in the page tree, establishing its URL path: https://<site-url>/<parent-slug>/<file-slug>.
  • Storage Mechanism: Stored as an attachment in the Dataverse Note (annotation) table or offloaded to Azure Blob Storage for high-volume file scaling.
  • Publishing State: Supports Draft and Published states to control asset availability.

Securing Web Files with Page Access Rules

Unlike Dataverse table rows which use Table Permissions, Web Files inherit their security from their Parent Page:

  • To restrict a confidential PDF to authenticated employees, place the Web File under a Parent Page that has a Web Page Access Control Rule configured with Restrict Read rights assigned to the Employees Web Role.
  • Anonymous users attempting to download the direct file URL will be redirected to the login page or receive an HTTP 403 Forbidden response.
Test Your Knowledge

A customer support website has a page structure where the 'Warranty' page is a child of the 'Support' page. The Partial URL of 'Support' is 'customer-support' and the Partial URL of 'Warranty' is 'product-warranty'. Customers report that navigating to 'https://contoso.powerappsportals.com/product-warranty' returns an HTTP 404 Page Not Found error. What is the cause of this error?

A
B
C
D
Test Your Knowledge

An organization operating in Canada requires a website available in both English and French. The legal department mandates that a specific bilingual liability disclaimer appear at the bottom of every page. The disclaimer text must be centrally maintainable in Dataverse and render in the user's active language automatically. Which Power Pages feature should the consultant implement?

A
B
C
D
Test Your Knowledge

A consultant must publish a sensitive proprietary product manual PDF ('manual-2026.pdf') on a Power Pages site. The file must be accessible via URL only to authenticated users who possess the 'Certified Partner' Web Role. Anonymous users must be blocked from downloading the file. How should the consultant configure this requirement?

A
B
C
D
Test Your Knowledge

An administrator needs to add a new external link ('Partner Community') to the site's top-level header navigation menu that redirects users to 'https://partners.contoso.com'. In the Portal Management model-driven app, which record type should the administrator modify, and what child record should be created?

A
B
C
D