Asp.net 标签文本属性和实体

Asp.net 标签文本属性和实体,asp.net,Asp.net,以下asp标签无法在浏览器中显示,是否有人可以 告诉我我做错了什么。我希望看到值,但是 我什么也得不到 <asp:Label ID="Label1" runat="server" Text="&lt;abc&gt;"></asp:Label> 顺便说一句,我意识到我可以通过以下方式完成同样的事情: <asp:label id="Message1" runat="server"> &lt;abc&gt; </asp:

以下asp标签无法在浏览器中显示,是否有人可以 告诉我我做错了什么。我希望看到值
,但是 我什么也得不到

<asp:Label ID="Label1" runat="server" Text="&lt;abc&gt;"></asp:Label> 

顺便说一句,我意识到我可以通过以下方式完成同样的事情:

<asp:label id="Message1" runat="server"> &lt;abc&gt; </asp:Label> 
abc
但这并不是我真正想要的,我想知道的是,是否允许在asp元素的属性值中使用诸如“abc”之类的字符串。换句话说,这是一个ASP.Net错误还是这种行为是设计造成的?如果是设计造成的,这种设计的原因是什么


多谢各位

信不信由你,但你可以在不转义实体的情况下包含实体,因此:

<asp:Label runat="server" ID="myLabel" Text="<abc>" />

这将呈现一个标记

编辑:好的,对不起,您想显示括号,当然不是制作标签。。 在Text属性中使用实体引用将得到相同的结果(不可见的)标记,因为它们在服务器端解析标记时被转换。你必须做的是:

<asp:Label runat="server" ID="myLabel" Text="&amp;lt;abc&amp;gt;" />


这将产生所需的结果-&实体引用将向客户端呈现符号AND。其次是lt,结果是正确的客户端实体引用()。它将呈现为信不信由你,但你可以包含实体而不转义它们,因此:

<asp:Label runat="server" ID="myLabel" Text="<abc>" />

这将呈现一个标记

编辑:好的,对不起,您想显示括号,当然不是制作标签。。 在Text属性中使用实体引用将得到相同的结果(不可见的)标记,因为它们在服务器端解析标记时被转换。你必须做的是:

<asp:Label runat="server" ID="myLabel" Text="&amp;lt;abc&amp;gt;" />


这将产生所需的结果-&实体引用将向客户端呈现符号AND。其次是lt,结果是正确的客户端实体引用()。这将呈现为是的,当然是允许的。标签控件的目的是向客户端显示文本和标记。我认为这真的很有用。注入代码是您的责任。

是的,当然可以。标签控件的目的是向客户端显示文本和标记。我认为这真的很有用。注入的代码是您的责任。

asp.net aspx解析器将把“”和“”取消扫描到“”。它将生成类似于此方法的内容:

[DebuggerNonUserCode]
private Label __BuildControlLabel1()
{
  Label __ctrl = new Label();
  base.Label1 = __ctrl;
  __ctrl.ApplyStyleSheetSkin(this);
  __ctrl.ID = "Label1";
  __ctrl.Text = "<abc>";
  return __ctrl;
}
[DebuggerNonUserCode]
专用标签_BuildControlLabel1()
{
标签_ctrl=新标签();
base.Label1=\uuu ctrl;
__ctrl.ApplyStyleSheetSkin(此);
__ctrl.ID=“Label1”;
__ctrl.Text=“”;
返回ctrl;
}
如果您想在text属性中写入它,您可以像“&;lt;”一样进行双重转义,但只需像您提到的那样在开始标记和结束标记之间写入它可能更容易

<asp:Label ...>&lt;abc&gt;</asp:Label>.
abc。

asp.net aspx解析器将把“”和“”取消转换为“”。它将生成类似于此方法的内容:

[DebuggerNonUserCode]
private Label __BuildControlLabel1()
{
  Label __ctrl = new Label();
  base.Label1 = __ctrl;
  __ctrl.ApplyStyleSheetSkin(this);
  __ctrl.ID = "Label1";
  __ctrl.Text = "<abc>";
  return __ctrl;
}
[DebuggerNonUserCode]
专用标签_BuildControlLabel1()
{
标签_ctrl=新标签();
base.Label1=\uuu ctrl;
__ctrl.ApplyStyleSheetSkin(此);
__ctrl.ID=“Label1”;
__ctrl.Text=“”;
返回ctrl;
}
如果您想在text属性中写入它,您可以像“&;lt;”一样进行双重转义,但只需像您提到的那样在开始标记和结束标记之间写入它可能更容易

<asp:Label ...>&lt;abc&gt;</asp:Label>.
abc。

这似乎是asp:Literal控件的用途,它允许显式控制转义。这似乎是asp:Literal控件的用途,它允许显式控制转义。