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?

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top