在我的Form.aspx
页面中,我在Page_Load
中有以下行:
userName = HttpContext.Current.Request.LogonUserIdentity.Name.Split('\\')[1];
我正在使用以下行在表单上设置一些文本:
userLabelSecret.Text = $"Hello {userName}. Please enter a secret word or phrase:";
我想在表单中执行类似的操作:
<asp:Label ID="userLabelSecret" runat="server" Text="Hello <%=userName%>. Please enter a secret word or phrase: "></asp:Label>
但是,这只显示字符串<%=userName%>
而不是实际的userName
变量。
是否可以将变量嵌入Text
属性中,而不是在Page_Load
中分配?
我尝试这样做会使用普通的C#连接运算符(+
),但这会导致以下错误:
<asp:Label ID="userLabelSecret" runat="server" Text= "Hello " + <%=userName%> + ". Please enter a secret word or phrase: "></asp:Label>
The name 'userLabelSecret' does not exist in the current context
答案 0 :(得分:1)
不,那是不可能做到的。将代码嵌入标记也不是一种好的做法。
如果那是您想要的路线,以下步骤将为您实现相同的结果。
将userName设为公共属性。然后将asp:标签更改为<label>
,并执行以下操作:
<label>Hello <%=userName%>. Please enter a secret word or phrase:</label>
答案 1 :(得分:0)
而不是直接连接&#34; +&#34; asp:Label中的运算符,尝试使用String.Concat
:
<asp:Label ID="userLabelSecret" runat="server" Text= "<%= String.Concat("Hello ", userName, ". Please enter a secret word or phrase: ") %>"></asp:Label>
或具有类似功能的纯HTML服务器控件,并保留服务器控件的名称:
<label id="userLabelSecret" runat="server">Hello <%= userName %>. Please enter a secret word or phrase:</label>
CMIIW。
答案 2 :(得分:0)
你可以做的是拥有一个string
类型的属性属性字符串username {get; set;}
属性字符串文本{get; set;} = string.Format(&#34; Hello {0}。请输入一个密码或短语:&#34;,username)
+&#34;。请输入一个密码或短语:&#34;&gt;