Tu es sûr que tu ne vas pas récupérer ça ?
L'utilisation de Response.Write à partir de l'arrière-code (soit dans la page, soit dans la page maître) fera apparaître la chaîne de caractères en haut de la page (généralement), avant le reste du HTML, etc.
J'ai placé un contrôle littéral sur une page maître, avant l'espace réservé au contenu :
On Master: <asp:Literal id="LiteralMaster" runat="server"></asp:Literal>
Et ensuite, en définissant la propriété Text dans l'événement Page_Load de la page principale :
LiteralMaster.Text = Context.Request.ServerVariables("SCRIPT_NAME")
J'ai également ajouté un contrôle littéral dans l'espace réservé au contenu d'une page qui utilise cette page maître :
On page: <asp:Literal id="LiteralPage" runat="server"></asp:Literal>
Et dans l'événement Page_Load de la page, j'avais ce qui suit :
LiteralPage.Text = Context.Request.ServerVariables("SCRIPT_NAME")
Ce qui a donné lieu à :
Sur le maître : /LittleTest/UsingMaster.aspx
Sur la page : /LittleTest/UsingMaster.aspx
Modifier l'événement Page_Load de ma page pour devenir :
LiteralPage.Text = Context.Request.ServerVariables("SCRIPT_NAME")
Response.Write("From response.write: " &
Context.Request.ServerVariables("Script_Name"))
Le résultat est l'affichage suivant dans mon navigateur :
De response.write : /LittleTest/UsingMaster.aspx
Sur le maître : /LittleTest/UsingMaster.aspx
Sur la page : /LittleTest/UsingMaster.aspx
Cependant, le html ressemblait plutôt à :
From response.write:/LittleTest/UsingMaster.aspx
<!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>
<title></title>
</head>
<body>
<form name="aspnetForm"
method="post" action="UsingMaster.aspx" id="aspnetForm">
<div>
On Master: /LittleTest/UsingMaster.aspx
<br />
On page: /LittleTest/UsingMaster.aspx
</div>
</form>
</body>
</html>
Modifier pour répondre au commentaire
Vous attribuez la représentation de la chaîne d'un élément NameValueCollection au contenu de votre étiquette. Il s'agit uniquement du NOM, et non de la combinaison du NOM et de la VALEUR.
Essayez ce qui suit :
For Each s As String In Request.ServerVariables
Label1.Text += s & ": " & Request.ServerVariables(s)
Next
Pour plus d'informations, consultez les documents MSDN :
HttpRequest.ServerVariables