将文本显示为标签时丢失格式

时间:2012-12-19 21:43:10

标签: c# asp.net

我有一个多行文本框,我充当描述字段。可以使用间距和返回将大量信息添加到此文本框中。以段落格式。当我稍后以Label显示此文本时,我丢失了所有格式,它变成了一面文字。有什么办法可以保留原始格式吗?

var customerInfo = GetCustomerInfo(itemid);

                if (customerInfo != null)
                {
                    ItemID.Text = customerInfo.ItemID.ToString();

                    Description.Text = customerInfo.Description;

                }

页面来源看起来像这样

                This is a test

this is a test 

this is a test
1. test
2. test
3. test
4. tes

Label / literal看起来像这样

This is a test this is a test  this is a test 1. test 2. test 3. test 4. tes

3 个答案:

答案 0 :(得分:2)

当您在HTML中显示格式化文本时,它不会显示格式,因为HTML还有其他格式化文本的方法。所有格式化字符(换行符,制表符,等等)都计为HTML中的空格,因此它只会显示为一个大块的文本。

要显示以HTML格式化的文本,您必须将格式转换为HTML用于格式化的内容,例如:

label.Text = myText.Replace("\r\n", "<br>").Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");

答案 1 :(得分:1)

我不太确定你发布了什么,但这应该有帮助

 Label1.Text = HttpUtility.HtmlEncode(myStringFromTxtBox);

答案 2 :(得分:0)

问题是原始文本将有回车符 - 这取决于操作系统 - 用于行分隔符,但在HTML中,您需要将它们转换为<br />以保持相同的格式。

此外,Label控件呈现为跨距。您最好使用常规div并在其上设置runat="server"属性,以便以编程方式分配内容。

Guffa对其他角色(标签,空格等)提出了另一个好处。所有这些都需要翻译成HTML等价物。

相关问题