Export (0) Print
Expand All

RouteParameter Class

Binds the value of a URL segment to a parameter object.

System.Object
  System.Web.UI.WebControls.Parameter
    System.Web.UI.WebControls.RouteParameter

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

'Declaration
Public Class RouteParameter _
	Inherits Parameter

The RouteParameter type exposes the following members.

  NameDescription
Public methodRouteParameterInitializes a new instance of the RouteParameter class.
Protected methodRouteParameter(RouteParameter)Initializes a new instance of the RouteParameter class by using the values of the specified instance.
Public methodRouteParameter(String, String)Initializes a new instance of the RouteParameter class by using the specified name for the parameter and the specified key for route data.
Public methodRouteParameter(String, DbType, String)Initializes a new instance of the RouteParameter class by using the specified name and database type for the parameter, and by using the specified key for the route data.
Public methodRouteParameter(String, TypeCode, String)Initializes a new instance of the RouteParameter class by using the specified name and type for the parameter, and by using the specified key for the route data.
Top

  NameDescription
Public propertyConvertEmptyStringToNullGets or sets a value indicating whether the value that the Parameter object is bound to should be converted to Nothing if it is String.Empty. (Inherited from Parameter.)
Public propertyDbTypeGets or sets the database type of the parameter. (Inherited from Parameter.)
Public propertyDefaultValueSpecifies a default value for the parameter, should the value that the parameter is bound to be uninitialized when the Evaluate method is called. (Inherited from Parameter.)
Public propertyDirectionIndicates whether the Parameter object is used to bind a value to a control, or the control can be used to change the value. (Inherited from Parameter.)
Protected propertyIsTrackingViewStateGets a value indicating whether the Parameter object is saving changes to its view state. (Inherited from Parameter.)
Public propertyNameGets or sets the name of the parameter. (Inherited from Parameter.)
Public propertyRouteKeyGets or sets the name of the route segment from which to retrieve the value for the route parameter.
Public propertySizeGets or sets the size of the parameter. (Inherited from Parameter.)
Public propertyTypeGets or sets the type of the parameter. (Inherited from Parameter.)
Protected propertyViewStateGets a dictionary of state information that allows you to save and restore the view state of a Parameter object across multiple requests for the same page. (Inherited from Parameter.)
Top

  NameDescription
Protected methodCloneReturns a duplicate of the current RouteParameter instance. (Overrides Parameter.Clone.)
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodEvaluateEvaluates the request URL and returns the value of the parameter. (Overrides Parameter.Evaluate(HttpContext, Control).)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetDatabaseTypeGets the DbType value that is equivalent to the CLR type of the current Parameter instance. (Inherited from Parameter.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodLoadViewStateRestores the data source view's previously saved view state. (Inherited from Parameter.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnParameterChangedCalls the OnParametersChanged method of the ParameterCollection collection that contains the Parameter object. (Inherited from Parameter.)
Protected methodSaveViewStateSaves the changes to the Parameter object's view state since the time the page was posted back to the server. (Inherited from Parameter.)
Protected methodSetDirtyMarks the Parameter object so its state will be recorded in view state. (Inherited from Parameter.)
Public methodToStringConverts the value of this instance to its equivalent string representation. (Inherited from Parameter.)
Protected methodTrackViewStateCauses the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page. (Inherited from Parameter.)
Top

  NameDescription
Explicit interface implemetationPrivate methodICloneable.CloneReturns a duplicate of the current Parameter instance. (Inherited from Parameter.)
Explicit interface implemetationPrivate propertyIStateManager.IsTrackingViewStateInfrastructure. Gets a value indicating whether the Parameter object is saving changes to its view state. (Inherited from Parameter.)
Explicit interface implemetationPrivate methodIStateManager.LoadViewStateInfrastructure. Restores the data source view's previously saved view state. (Inherited from Parameter.)
Explicit interface implemetationPrivate methodIStateManager.SaveViewStateInfrastructure. Saves the changes to the Parameter object's view state since the time the page was posted back to the server. (Inherited from Parameter.)
Explicit interface implemetationPrivate methodIStateManager.TrackViewStateInfrastructure. Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page. (Inherited from Parameter.)
Top

If you implement ASP.NET routing in a Web site, you can use the RouteParameter object to bind the value of a segment of the requested URL to a database query or command. You can declare RouteParameter objects in markup for data source controls or the QueryExtender control.

A Visual Studio Web site project with source code is available to accompany this topic: Download.

The examples in this section show how to use RouteParameter objects in markup to pass URL parameter values to a query that is specified for a data source control.

The following example shows code in the Global.asax page that defines a route that is named ProductRoute. The route defines a URL parameter that is named productname. The route also defines an optional catchall parameter that is named culture, which can be used to specify the language in which the product description is displayed. The Product.aspx page handles requests for this route.

The following example shows the Product.aspx page. The page contains a SqlDataSource control that has a query that requires two parameters, one for the name of the product and one for the language of the product description. RouteParameter objects are used to supply the values for the query parameters. The value of the route URL parameter productname is passed to the query parameter @productname. The value of the route URL parameter culture is passed to the query parameter @culture. If a route URL does not include the URL parameter culture, a default value of "en" is used.


<%@ Page %>

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Product Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>Product Page</h1>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:AdventureWorksLTConnectionString %>" 
            SelectCommand="SELECT SalesLT.Product.ProductID, 
                SalesLT.Product.Name, 
                SalesLT.ProductDescription.Description 
                FROM SalesLT.Product 
                INNER JOIN SalesLT.ProductModel 
                ON SalesLT.Product.ProductModelID = 
                SalesLT.ProductModel.ProductModelID 
                INNER JOIN SalesLT.ProductModelProductDescription 
                ON SalesLT.ProductModel.ProductModelID = 
                SalesLT.ProductModelProductDescription.ProductModelID 
                INNER JOIN SalesLT.ProductDescription 
                ON SalesLT.ProductModelProductDescription.ProductDescriptionID = 
                SalesLT.ProductDescription.ProductDescriptionID 
                WHERE (SalesLT.ProductModelProductDescription.Culture = @culture) 
                AND (SalesLT.Product.Name = @productname)">
            <SelectParameters>
                <asp:RouteParameter DefaultValue="en" Name="culture" RouteKey="culture" />
                <asp:RouteParameter Name="productname" RouteKey="productname" />
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" runat="server" 
            DataSourceID="SqlDataSource1">
        </asp:GridView>
    </div>
    </form>
</body>
</html>


The following example shows a page that is named ProductLinks.aspx, which contains hyperlinks that link to the Product.aspx page by using route URLs. These hyperlinks use RouteUrl expressions to create route URLs. The first link does not include a culture route parameter. Therefore, the default value of "en" that is defined in the RouteParameter object for @culture query parameter will be used in the query. The second link provides a culture value of "fr", which causes the description to be displayed in French. For more information about how to use RouteUrl expressions, see How to: Construct URLs from Routes.


<%@ Page %>

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

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Product Links Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>
            Product Links Page
        </h1>
        <asp:HyperLink ID="HyperLink1" runat="server" 
            NavigateUrl="<%$RouteUrl:routename=productroute,productname=LL Bottom Bracket%>">
            Product page for LL Bottom Bracket</asp:HyperLink>
        <br />
        <asp:HyperLink ID="HyperLink8" runat="server" 
            NavigateUrl="<%$RouteUrl:routename=productroute,productname=LL Bottom Bracket,culture=fr%>">
            Product page for LL Bottom Bracket (French)</asp:HyperLink>
    </div>
    </form>
</body>
</html>


When you click the first hyperlink, you see the Product.aspx page with the following values in the GridView control:

ProductID

Name

Description

994

LL Bottom Bracket

Chromoly steel.

When you click the second hyperlink, you see the following values in the GridView control:

ProductID

Name

Description

994

LL Bottom Bracket

Acier chromé.

To run this example, add the two .aspx pages and the code in the Global.asax file to an ASP.NET Web site or Web application that defines a connection string named AdventureWorksLTConnectionString for the AdventureWorksLT database. For information about how to set up a connection to the AdventureWorksLT database, see How to: Set Up an AdventureWorksLT Sample Database for ASP.NET Development.

For more information about ASP.NET routing, see ASP.NET Routing.

.NET Framework

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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

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

Community Additions

ADD
Show:
© 2014 Microsoft