我正在尝试将用户名设置为标签, 但不确定这是否是正确的语法 -
添加以下标记会生成解析错误

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

这里的主要问题是,我不知道<%= %><%# %>被调用了什么,因此不能谷歌/ Bing。

有人能指出我正确的方向吗?

有帮助吗?

解决方案

我个人会在Page_Load

中的代码中设置标签的文本
userNameLabel.Text = User.Identity.Name.Split('\\')[1];

您需要确保用户名中有\,否则您将收到错误。

其他提示

如果您尝试将User.Identity.Name转换为几个字符串,它看起来将char []更改为string [],应该这样做。

<!> lt;%#%<!> gt;语法用于数据绑定。它适用于您想要做的事情,您需要确保调用DataBind()。

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

其他选项包括:

从Page_Load事件设置Text属性。

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