我有一个标签,我想将此标签的文字设置为
HTTPContext.Current.User.Identity.Name
所以我写了
Text = '<%=HTTPContext.Current.User.Identity.Name %>'
但它不起作用,但是当我在标签之外写这个例子时:
<h2>
<%=HTTPContext.Current.User.Identity.Name %>
</h2>
它有效。
答案 0 :(得分:4)
<asp:Label ID="lbUserName"
runat="server"
Text='<%# HttpContext.Current.User.Identity.Name %>'
/>
在Page_Load 中
if (!Page.IsPostBack )
{
lbUserName.DataBind();
}
答案 1 :(得分:1)
使用像这样的标签
<asp:label id="lblx" runat="server" ><%= HTTPContext.Current.User.Identity.Name %></asp:label>
答案 2 :(得分:1)
要像这样绑定文本,您必须创建自己的自定义表达式构建器。
首先,将这样的类添加到命名空间:
using System.Web.Compilation;
using System.CodeDom;
[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : ExpressionBuilder
{
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry,
object parsedData, ExpressionBuilderContext context)
{
return new CodeSnippetExpression(entry.Expression);
}
}
下一步是将其添加到您的web.config文件中:
<compilation debug="true">
<expressionBuilders>
<add expressionPrefix="Code" type="YourNameSpace.CodeExpressionBuilder"/>
</expressionBuilders>
</compilation>
然后最终应该有效:
<asp:Label id="YourLabel" runat="server" Text='<%$ Code:HttpContext.Current.User.Identity.Name %>' />
实现简单的复杂方法,但这将允许您在整个项目中使用您想要的语法,因此可能值得付出额外的努力。