.NET Framework Class Library RouteParameter Class Binds the value of a URL segment to a parameter object.

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

Syntax
Public Class RouteParameter _
Inherits Parameter
public class RouteParameter : Parameter
public ref class RouteParameter : public Parameter
type RouteParameter =
class
inherit Parameter
end
The RouteParameter type exposes the following members.

Methods

Explicit Interface Implementations

Remarks
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.

Examples
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 >
<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 >
<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.

Version Information
.NET FrameworkSupported in: 4

Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), 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.

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

See Also
|
Bibliothèque de classes .NET Framework RouteParameter, classe Lie la valeur d'un segment d'URL à un objet paramètre.

Hiérarchie d'héritage
Espace de noms :
System.Web.UI.WebControls
Assembly :
System.Web (dans System.Web.dll)

Syntaxe
Public Class RouteParameter _
Inherits Parameter
public class RouteParameter : Parameter
public ref class RouteParameter : public Parameter
type RouteParameter =
class
inherit Parameter
end
Le type RouteParameter expose les membres suivants.

Méthodes

Implémentations d'interface explicite

Notes
Si vous implémentez le routage ASP.NET dans un site Web, vous pouvez utiliser l'objet RouteParameter pour lier la valeur d'un segment de l'URL demandée à une requête de base de données ou une commande. Vous pouvez déclarer des objets RouteParameter dans le balisage pour les contrôles de source de données ou le contrôle QueryExtender. Un projet de site Web Visual Studio contenant du code source est disponible pour accompagner cette rubrique : Download.

Exemples
Les exemples de cette section indiquent comment utiliser des objets RouteParameter dans le balisage pour passer des valeurs de paramètre d'URL à une requête spécifiée pour un contrôle de source de données. L'exemple suivant affiche le code dans la page Global.asax qui définit un itinéraire nommé ProductRoute. L'itinéraire définit un paramètre URL nommé productname. L'itinéraire définit également un paramètre fourre-tout facultatif nommé culture, qui peut être utilisé pour spécifier la langue dans laquelle la description du produit est affichée. La page Product.aspx gère les demandes pour cet itinéraire. L'exemple suivant illustre la page Product.aspx. La page contient un contrôle SqlDataSource contenant une requête à deux paramètres, un pour le nom du produit et un pour la langue de la description du produit. Les objets RouteParameter sont utilisés pour fournir les valeurs pour les paramètres de requête. La valeur du paramètre de l'URL de routage productname est passée au @productname du paramètre de culture. La valeur du paramètre de l'URL de routage culture est passée au @culture du paramètre de culture. Si une URL de routage n'inclut pas le paramètre URL culture, une valeur par défaut de « en » est utilisée.
<%@ Page %>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html >
<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>
L'exemple suivant affiche une page nommée ProductLinks.aspx, qui contient des liens hypertexte vers la page Product.aspx utilisant des URL de routage. Ces liens hypertexte utilisent des expressions RouteUrl pour créer des URL d'itinéraire. Le premier lien n'inclut pas de paramètre d'itinéraire culture. Par conséquent, la valeur par défaut de « en » définie dans l'objet RouteParameter pour le paramètre de requête @culture sera utilisée dans la requête. Le deuxième lien fournit une valeur culture « fr », ce qui affiche la description en français. Pour plus d'informations sur l'utilisation des expressions RouteUrl, consultez Comment : construire des URL à partir d'itinéraires.
<%@ Page %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<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>
Lorsque vous cliquez sur le premier lien hypertexte, la page Product.aspx s'affiche avec le contrôle GridView comportant les valeurs suivantes : ProductID | Nom | Description |
|---|
994
|
LL Bottom Bracket
|
Chromoly steel.
|
Lorsque vous cliquez sur le deuxième lien hypertexte, les valeurs suivantes s'affichent dans le contrôle GridView : ProductID | Nom | Description |
|---|
994
|
LL Bottom Bracket
|
Acier chromé.
|
Pour exécuter cet exemple, ajoutez les deux pages .aspx et le code du fichier Global.asax à un site Web ASP.NET ou à application Web qui définit une chaîne de connexion nommée AdventureWorksLTConnectionString pour la base de données AdventureWorksLT. Pour plus d'informations sur la configuration d'une connexion à la base de données AdventureWorksLT, consultez Comment : configurer un exemple de base de données AdventureWorksLT pour le développement ASP.NET. Pour plus d'informations sur le routage d'ASP.NET, consultez Routage ASP.NET.

Informations de version
.NET FrameworkPris en charge dans : 4

Plateformes
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Sécurité des threads
Tous les membres static ( Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi
RéférenceAutres ressources
|