Как установить текст метки ASP.NET для текущего имени пользователя

StackOverflow https://stackoverflow.com/questions/1609952

Вопрос

Я пытаюсь установить имя пользователя для метки, но не уверен, что это правильный синтаксис -
добавление следующей разметки приводит к ошибке разбора

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

Основная проблема здесь в том, что я не знаю, как называются <%= %> или <%# %>, поэтому не могу Google / Bing.

Может ли кто-нибудь указать мне правильное направление?

Это было полезно?

Решение

Лично я бы установил текст метки в коде в Page_Load

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

Вам нужно убедиться, что в имени пользователя есть \, иначе вы получите ошибку.

Другие советы

Если вы пытаетесь преобразовать User.Identity.Name в пару строк, похоже, что изменение char [] в string [] должно помочь.

<% #% > Синтаксис для привязки данных. Это будет работать для того, что вы хотите сделать, вам нужно убедиться, что DataBind () вызывается.

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

Другие варианты включают в себя:

Установите свойство Text из события Page_Load.

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

Оберните этикетку вокруг записи.

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

Это тоже работает.

    <asp:Label ID="userNameLabel" runat="server">
        <%= User.Identity.Name %>
    </asp:Label>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top