UrlMapping 类

定义

将显示的 URL 映射到 Web 应用程序中页面的 URL。 此类不能被继承。

public ref class UrlMapping sealed : System::Configuration::ConfigurationElement
public sealed class UrlMapping : System.Configuration.ConfigurationElement
type UrlMapping = class
    inherit ConfigurationElement
Public NotInheritable Class UrlMapping
Inherits ConfigurationElement
继承

示例

以下示例使用 UrlMappingsSection Web.config 文件映射两个 URL,并为其他 URL 添加映射。 修改并保存 Web.config 文件时,应用程序将重启。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Configuration" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<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);

        // <Snippet2>
        UrlMapping urlMap = null;
        
        // Open Web.config
        Configuration config =
            WebConfigurationManager.OpenWebConfiguration("~");
        // Get the UrlMappings section
        UrlMappingsSection urlMapSection =
            (UrlMappingsSection)config.GetSection(
                "system.web/urlMappings");
        
        // 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", 
                    "~/default.aspx?show=3");
                urlMapSection.UrlMappings.Add(urlMap);
                
                // This line assumes permission to write to disk
                config.Save();
            }
        }

        if (showVal > 0)
        {
            // <Snippet4>
            urlMap = (UrlMapping)urlMapSection.UrlMappings[showVal - 1];
            realURL.Text = urlMap.MappedUrl;
            // </Snippet4>
        }
        // </Snippet2>
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>UrlMapping Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    <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>
    <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>
    <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>
    <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>
    </asp:Panel>
    <p>The real URL for this page is 
        <asp:Label ID="realURL" runat="server">[None]</asp:Label></p>

    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Configuration" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Dim showVal As Integer

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        ' Get the parameter value from the QueryString
        If Not IsNothing(Request.Params("show")) Then
            showVal = Int32.Parse(Request.Params("show"))
        Else
            showVal = 0
        End If
        
        ' Show a page depending on the parameter value
        NoShowPanel.Visible = (showVal = 0)
        ShowHomePage.Visible = (showVal = 1)
        ShowProductsPage.Visible = (showVal = 2)
        ShowEventsPage.Visible = (showVal = 3)

        ' <Snippet2>
         dim urlMap as UrlMapping

        Dim config As Configuration
        ' Open Web.config
        config = _
            WebConfigurationManager.OpenWebConfiguration("~")
        ' Get the UrlMappings section
        Dim urlMapSection As UrlMappingsSection
        urlMapSection = _
           CType(config.GetSection( _
               "system.web/urlMappings"), UrlMappingsSection)
               
        ' Modify UrlMapping in Web.config first time through
        If (Not Page.IsPostBack) Then
            ' If not already added, add a UrlMapping to the section
            If urlMapSection.UrlMappings.Count = 2 Then
                urlMap = New UrlMapping("~/events.aspx", _
                    "~/default.aspx?show=3")
                urlMapSection.UrlMappings.Add(urlMap)
                
                ' This line assumes permission to write to disk
                config.Save()
            End If
        End If
        
        If showVal > 0 Then
            '<Snippet4>
            urlMap = CType(urlMapSection.UrlMappings(showVal - 1), UrlMapping)
            realURL.Text = urlMap.MappedUrl
            '</Snippet4>
        End If
        ' </Snippet2>
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>UrlMapping Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    <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>
    <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>
    <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>
    <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>
    </asp:Panel>
    <p>The real URL for this page is 
        <asp:Label ID="realURL" runat="server">default.aspx</asp:Label></p>

    </div>
    </form>
</body>
</html>

注解

UrlMapping 类允许将显示的 URL 映射到 Web 应用程序中存在的 URL。 将 UrlMapping 对象添加到 a UrlMappingCollection 是编程等效的,相当于在 add 配置文件的节中包含 urlMappings 元素。

每个 UrlMapping 对象都包含标识 URL 的两个属性。 一个属性指定向用户显示的 URL;另一个指定 Web 应用程序中的 URL。 在属性中UrlMappedUrl忽略尾随空格字符。

注释

UrlMapping属性可以根据其值为AllowDefinition的节属性MachineToApplication定义的限制,将信息写入配置文件的相关节中。 在层次结构中不允许的某个级别的配置文件中写入的任何尝试都将导致分析程序生成的错误消息。 但是,可以使用此类在层次结构中的任何级别读取配置信息。

构造函数

名称 说明
UrlMapping(String, String)

初始化 UrlMapping 类的新实例。

属性

名称 说明
CurrentConfiguration

获取对顶级 Configuration 实例的引用,该实例表示当前 ConfigurationElement 实例所属的配置层次结构。

(继承自 ConfigurationElement)
ElementInformation

获取一个 ElementInformation 对象,该对象包含 ConfigurationElement 对象的不可自定义信息和功能。

(继承自 ConfigurationElement)
ElementProperty

获取表示 ConfigurationElementProperty 对象本身的 ConfigurationElement 对象。

(继承自 ConfigurationElement)
EvaluationContext

获取 ContextInformation 对象的 ConfigurationElement 对象。

(继承自 ConfigurationElement)
HasContext

获取一个值,该值指示 CurrentConfiguration 属性是否 null

(继承自 ConfigurationElement)
Item[ConfigurationProperty]

获取或设置此配置元素的属性或属性。

(继承自 ConfigurationElement)
Item[String]

获取或设置此配置元素的属性、属性或子元素。

(继承自 ConfigurationElement)
LockAllAttributesExcept

获取锁定属性的集合。

(继承自 ConfigurationElement)
LockAllElementsExcept

获取锁定元素的集合。

(继承自 ConfigurationElement)
LockAttributes

获取锁定属性的集合。

(继承自 ConfigurationElement)
LockElements

获取锁定元素的集合。

(继承自 ConfigurationElement)
LockItem

获取或设置一个值,该值指示元素是否已锁定。

(继承自 ConfigurationElement)
MappedUrl

Web 应用程序中的 URL。

Properties

获取属性的集合。

(继承自 ConfigurationElement)
Url

获取向用户显示的 URL。

方法

名称 说明
DeserializeElement(XmlReader, Boolean)

从配置文件中读取 XML。

(继承自 ConfigurationElement)
Equals(Object)

将当前 ConfigurationElement 实例与指定对象进行比较。

(继承自 ConfigurationElement)
GetHashCode()

获取表示当前 ConfigurationElement 实例的唯一值。

(继承自 ConfigurationElement)
GetTransformedAssemblyString(String)

返回指定程序集名称的转换版本。

(继承自 ConfigurationElement)
GetTransformedTypeString(String)

返回指定类型名称的转换版本。

(继承自 ConfigurationElement)
GetType()

获取当前实例的 Type

(继承自 Object)
Init()

ConfigurationElement 对象设置为其初始状态。

(继承自 ConfigurationElement)
InitializeDefault()

用于初始化 ConfigurationElement 对象的默认值集。

(继承自 ConfigurationElement)
IsModified()

指示在派生类中实现此配置元素自上次保存或加载以来是否已修改此配置元素。

(继承自 ConfigurationElement)
IsReadOnly()

获取一个值,该值指示对象 ConfigurationElement 是否为只读。

(继承自 ConfigurationElement)
ListErrors(IList)

将此 ConfigurationElement 对象和所有子元素中的无效属性错误添加到传递的列表。

(继承自 ConfigurationElement)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
OnDeserializeUnrecognizedAttribute(String, String)

获取一个值,该值指示在反序列化期间是否遇到未知属性。

(继承自 ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

获取一个值,该值指示在反序列化期间是否遇到未知元素。

(继承自 ConfigurationElement)
OnRequiredPropertyNotFound(String)

在找不到所需属性时引发异常。

(继承自 ConfigurationElement)
PostDeserialize()

反序列化后调用。

(继承自 ConfigurationElement)
PreSerialize(XmlWriter)

在序列化之前调用。

(继承自 ConfigurationElement)
Reset(ConfigurationElement)

重置对象的内部状态 ConfigurationElement ,包括锁和属性集合。

(继承自 ConfigurationElement)
ResetModified()

将方法的值 IsModified() 重置为 false 在派生类中实现时的值。

(继承自 ConfigurationElement)
SerializeElement(XmlWriter, Boolean)

在派生类中实现时,将此配置元素的内容写入配置文件。

(继承自 ConfigurationElement)
SerializeToXmlElement(XmlWriter, String)

在派生类中实现时,将此配置元素的外部标记写入配置文件。

(继承自 ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

将属性设置为指定的值。

(继承自 ConfigurationElement)
SetReadOnly()

IsReadOnly()设置对象和所有子元素的属性ConfigurationElement

(继承自 ConfigurationElement)
ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

ConfigurationElement修改对象以删除不应保存的所有值。

(继承自 ConfigurationElement)

适用于

另请参阅