2009-10-22 9 views
0

Je suis en train de définir un nom d'utilisateur à une étiquette, mais pas sûr si cela est la bonne syntaxe -
ajoutant balisage suivant génère une erreur d'analyseComment définir le texte d'étiquette ASP.NET pour nom d'utilisateur actuel

<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 ce que <%= %> ou <%# %> sont appelés, donc ne peut pas Google/Bing.

Quelqu'un peut-il me diriger vers une bonne direction?

+1

Cela peut être utile: http://naspinski.net/post/inline-aspnet-tags-sorting-them-all-out-(3c25242c-3c253d2c-3c252c-3c252c-etc).aspx – ChristopheD

+0

@ ChristopheD: J'aurais choisi ton lien comme réponse, si tu l'avais posté comme réponse ... – Sung

Répondre

3

Personnellement, je définir le texte de l'étiquette dans le code derrière dans Page_Load

userNameLabel.Text = User.Identity.Name.Split('\\')[1]; 

Vous devrez vous assurer qu'il ya un \ dans le nom d'utilisateur ou vous obtiendrez une erreur.

+0

Pour l'instant, c'est ce que je me suis arrangé avec. Merci RR – Sung

0

Si vous essayez de convertir User.Identity.Name en deux chaînes, il semble que changer char [] en chaîne [], devrait faire l'affaire.

0

La syntaxe <% #%> est utilisée 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] %>' /> 

D'autres options incluent:

Définissez la propriété Text de l'événement Page_Load.

void Page_Load(object sender, EventArgs e) 
{ 
    userNameLabel.Text = User.Identity.Name.Split('\\')[1]; 
} 

Enveloppez l'étiquette autour de l'écriture.

<asp:Label ID="userNameLabel" runat="server"><%= User.Identity.Name.Split('\\')[1] %></asp:Label> 
0

Cela fonctionne également.

<asp:Label ID="userNameLabel" runat="server"> 
     <%= User.Identity.Name %> 
    </asp:Label> 
Questions connexes