Wie ASP.NET Beschriftungstext aktuellen Benutzernamen festlegen
-
05-07-2019 - |
Frage
Ich versuche, einen Benutzernamen auf ein Etikett zu setzen,
aber nicht sicher, ob dies die richtige Syntax -
folgende Markup Hinzufügen erzeugt ein Parse-Fehler
<asp:Label ID="userNameLabel" runat="server"
Text='<%= User.Identity.Name.Split(new char[]{'\\'})[1] %>' />
Das Hauptproblem dabei ist, dass ich weiß nicht, was <%= %>
oder <%# %>
genannt werden, so kann es nicht Google / Bing.
Kann mir jemand deuten auf eine richtige Richtung?
Lösung
Persönlich würde ich den Text des Etiketts im Code festgelegt hinter in Page_Load
userNameLabel.Text = User.Identity.Name.Split('\\')[1];
Sie müssen sicherstellen, dass es eine \ im Benutzernamen oder Sie erhalten eine Fehlermeldung.
Andere Tipps
Wenn Sie versuchen, User.Identity.Name in ein paar Strings zu konvertieren, sieht es ändert char [], um string [], sollte es tun.
Die <% #%> Syntax für die Datenbindung. Es funktioniert für das, was Sie tun möchten, müssen Sie sicherstellen, dass DataBind () aufgerufen wird.
<asp:Label ID="userNameLabel" runat="server" Text='<%# User.Identity.Name.Split('\\')[1] %>' />
Weitere Optionen sind:
Legen Sie die Text-Eigenschaft aus dem Ereignis Page Load.
void Page_Load(object sender, EventArgs e)
{
userNameLabel.Text = User.Identity.Name.Split('\\')[1];
}
Wickeln Sie das Etikett um den Schreibvorgang.
<asp:Label ID="userNameLabel" runat="server"><%= User.Identity.Name.Split('\\')[1] %></asp:Label>
Das funktioniert auch.
<asp:Label ID="userNameLabel" runat="server">
<%= User.Identity.Name %>
</asp:Label>