This documentation is archived and is not being maintained.

UrlMapping Class

Maps a URL that is displayed to users to the URL of a page in your Web application. This class cannot be inherited.

Namespace:  System.Web.Configuration
Assembly:  System.Web (in System.Web.dll)

public sealed class UrlMapping : ConfigurationElement

The UrlMapping class allows you to map a URL that is displayed to users to a URL that exists in your Web application. Adding a UrlMapping object to a UrlMappingCollection is the programmatic equivalent to including an add element in the urlMappings section of a configuration file.

Each UrlMapping object contains two properties identifying a URL. One property specifies the URL shown to the user; the other specifies a URL in your Web application. Trailing white-space characters are ignored in both the Url and MappedUrl properties.


The UrlMapping property can write information into the related section of the configuration file according to the restrictions defined by the section property AllowDefinition whose value is MachineToApplication. Any attempt to write in a configuration file at a level not allowed in the hierarchy will result in an error message generated by the parser. However, you can use this class to read configuration information at any level in the hierarchy.

The following example uses the UrlMappingsSection of the Web.config file to map two URLs, and adds a mapping for an additional URL. When you modify and save the Web.config file, your application restarts.

<configuration xmlns="">
  <appSettings />
  <connectionStrings />

    <compilation debug="true" />
    <customErrors mode="Off" />

    <authentication />
      <deny users="?" />
    <identity impersonate="true" />

    <urlMappings enabled="true">
      <add url="~/home.aspx" mappedUrl="~/default.aspx?show=1" />
      <add url="~/products.aspx" mappedUrl="~/default.aspx?show=2" />
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Configuration" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

<script runat="server">
    int showVal = 0;

    protected void Page_Load(object sender, EventArgs e)
        // Get the parameter value from the QueryString
        if (Request.Params["show"] != null)
            showVal = Int32.Parse(Request.Params["show"]);

        // Show a page depending on the parameter value
        NoShowPanel.Visible = (showVal == 0);
        ShowHomePage.Visible = (showVal == 1);
        ShowProductsPage.Visible = (showVal == 2);
        ShowEventsPage.Visible = (showVal == 3);

        UrlMapping urlMap = null;

        // Open Web.config
        Configuration config =
        // Get the UrlMappings section
        UrlMappingsSection urlMapSection =

        // Modify UrlMapping in Web.config first time through
        if (!Page.IsPostBack)
            // If not already added, add a UrlMapping to the section
            if (urlMapSection.UrlMappings.Count == 2)
                urlMap = new UrlMapping("~/events.aspx", 

                // This line assumes permission to write to disk

        if (showVal > 0)
            urlMap = (UrlMapping)urlMapSection.UrlMappings[showVal - 1];
            realURL.Text = urlMap.MappedUrl;


<html xmlns="" >
<head runat="server">
    <title>UrlMapping Example</title>
    <form id="form1" runat="server">

    <asp:Panel ID="NoShowPanel" runat="server" Visible="true">
        <h2>Show no page</h2>
        <p><a href="home.aspx">Home.aspx</a></p>
        <p><a href="products.aspx">Products.aspx</a></p>
        <p><a href="events.aspx">Events.aspx</a></p>
    <asp:Panel ID="ShowHomePage" runat="server" Visible="false">
        <h2>Home Page</h2>
        <p><a href="products.aspx">Products.aspx</a></p>
        <p><a href="events.aspx">Events.aspx</a></p>
    <asp:Panel ID="ShowProductsPage" runat="server" Visible="false">
        <h2>Products Page</h2>
        <p><a href="home.aspx">Home.aspx</a></p>
        <p><a href="events.aspx">Events.aspx</a></p>
    <asp:Panel ID="ShowEventsPage" runat="server" Visible="false">
        <h2>Events Page</h2>
        <p><a href="home.aspx">Home.aspx</a></p>
        <p><a href="products.aspx">Products.aspx</a></p>
    <p>The real URL for this page is 
        <asp:Label ID="realURL" runat="server">[None]</asp:Label></p>


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0