Comment définir le texte d'étiquette ASP.NET sur le nom d'utilisateur actuel
-
05-07-2019 - |
Question
J'essaie de définir un nom d'utilisateur pour une étiquette,
mais je ne sais pas si c'est la bonne syntaxe -
l'ajout du balisage suivant génère une erreur d'analyse
<asp:Label ID="userNameLabel" runat="server"
Text='<%= User.Identity.Name.Split(new char[]{'\\'})[1] %>' />
Le principal problème ici est que, je ne sais pas comment <%= %>
ou <%# %>
sont appelés, donc Google / Bing ne peut pas.
Quelqu'un peut-il m'indiquer une bonne direction?
La solution
Personnellement, je définirais le texte de l'étiquette dans le code situé dans Page_Load
userNameLabel.Text = User.Identity.Name.Split('\\')[1];
Vous devez vous assurer qu'il y a un \ dans le nom d'utilisateur ou vous obtiendrez une erreur.
Autres conseils
Si vous essayez de convertir User.Identity.Name en quelques chaînes, il semble que changer char [] en string [] devrait suffire.
Le <% #% > la syntaxe est pour la liaison de données. Cela fonctionnera pour ce que vous voulez faire, vous devrez vous assurer que DataBind () est appelé.
<asp:Label ID="userNameLabel" runat="server" Text='<%# User.Identity.Name.Split('\\')[1] %>' />
Les autres options incluent:
Définissez la propriété Text à partir de l'événement Page_Load.
void Page_Load(object sender, EventArgs e)
{
userNameLabel.Text = User.Identity.Name.Split('\\')[1];
}
Enroulez l'étiquette autour de l'écriture.
<asp:Label ID="userNameLabel" runat="server"><%= User.Identity.Name.Split('\\')[1] %></asp:Label>
Cela fonctionne aussi bien.
<asp:Label ID="userNameLabel" runat="server">
<%= User.Identity.Name %>
</asp:Label>