将文本与HTML结合的正确语法是什么?

时间:2017-03-29 20:17:43

标签: c# asp.net

我有一个C#foreach循环,其中包含以下内容:

lblCheckedNodes.Text += node.Text + "&#x25BA< br />";

显示如下:myCheckedNodeText►&lt; br /&gt; 。这显示换行符而不是实际换行,但是如果我这样做:

lblCheckedNodes.Text += node.Text + "<br />";

线路返回有效,但我似乎无法兼顾两者。

2 个答案:

答案 0 :(得分:3)

HTML实体中缺少分号

&#x25BA这样的HTML实体需要一个尾随分号来表示实体本身的结束,所以你需要确保它存在:

lblCheckedNodes.Text += node.Text + "&#x25BA;<br />";

考虑使用StringBuilder

正如评论中所提到的,如果你不断地将字符串连接在一起,你可能最好使用StringBuilder类,这在处理这种类型的活动方面效率更高:

StringBuilder nodes = new StringBuilder("");
// Build your strings here
foreach (var node in nodes)
{
     // You have a few options for concatenation here
     // Basic Concatenation -> nodes.Append(node.Text + " &#x25BA; <br />");
     // String.Format() -> nodes.Append(String.Format("{0} &#x25BA; <br />", node.Text));
     // String Iterpolation (seen below)
     nodes.Append($"{node.Text} &#x25BA; <br />");
}
// Set your label content
lblCheckedNodes.Text = nodes.ToString();

答案 1 :(得分:1)

我认为你只是错过了一个分号。 试试这个

lblCheckedNodes.Text += node.Text + "&#x25BA;<br />";