Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文本显示为标签时丢失格式设置_C#_Asp.net - Fatal编程技术网

C# 将文本显示为标签时丢失格式设置

C# 将文本显示为标签时丢失格式设置,c#,asp.net,C#,Asp.net,我有一个多行文本框,用作描述字段。大量信息可以通过空格和返回添加到此文本框。以段落形式。当我以后将此文本显示为标签时我会丢失所有格式,它会变成一堵文本墙。我能做些什么来保持原始格式吗 var customerInfo = GetCustomerInfo(itemid); if (customerInfo != null) { ItemID.Text = customerInfo.ItemID

我有一个多行文本框,用作描述字段。大量信息可以通过空格和返回添加到此文本框。以段落形式。当我以后将此文本显示为
标签时
我会丢失所有格式,它会变成一堵文本墙。我能做些什么来保持原始格式吗

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
This is a test this is a test  this is a test 1. test 2. test 3. test 4. tes
标签/文字如下所示

                This is a test

this is a test 

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

我不太确定你是否发布了其他内容,但这应该会有所帮助

 Label1.Text = HttpUtility.HtmlEncode(myStringFromTxtBox);

我不太确定你是否发布了其他内容,但这应该会有所帮助

 Label1.Text = HttpUtility.HtmlEncode(myStringFromTxtBox);

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

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

label.Text = myText.Replace("\r\n", "<br>").Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
label.Text=myText.Replace(“\r\n”和“
”)。Replace(“\t”和“);
在HTML中显示格式化文本时,不会显示格式化文本,因为HTML有其他格式化文本的方法。在HTML中,所有格式字符(换行符、制表符等)都算作空格,因此它只会显示为一大块文本

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

label.Text = myText.Replace("\r\n", "<br>").Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
label.Text=myText.Replace(“\r\n”和“
”)。Replace(“\t”和“);
问题在于,对于行分隔符,原始文本将有回车符(根据操作系统的不同而有所不同),但在HTML中,您需要将其转换为

以保持相同的格式

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


Guffa对其他角色(制表符、空格等)提出了另一个很好的观点所有这些内容都需要翻译成HTML格式。

问题是,对于行分隔符,原始文本将有回车符(根据操作系统的不同而有所不同),但在HTML中,您需要将其翻译成

以保持相同的格式

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



Guffa对其他字符(制表符、空格等)提出了另一个很好的观点。所有这些字符都需要翻译成HTML格式。

你能举一个原始文本的例子吗?您可以将文本输出到DIV而不是label control。您可以在只读文本区域中显示文本吗?还是必须转换成html?@Guffa你能告诉我我做错了什么吗。我尝试了这个
Description.Text=customerInfo.Description.Replace(“\r\n”和“
”).Replace(“\t”和“)而且它似乎不起作用。你能展示一下你的原文吗?您可以将文本输出到DIV而不是label control。您可以在只读文本区域中显示文本吗?还是必须转换成html?@Guffa你能告诉我我做错了什么吗。我尝试了这个
Description.Text=customerInfo.Description.Replace(“\r\n”和“
”).Replace(“\t”和“)
而且它似乎不起作用,因为您的代表我相信这可能比我建议的要好,但不是一样吗?@MUG4N-是的,我不认为手动尝试替换所有编码的html比使用内置html更好decoder@ScottSelby:HtmlDecode
的作用有点相反,例如转动
&进入
。甚至
HtmlEncode
也不一样,它只是对一些字符进行编码,例如将
&
转换为
&,它不会将格式字符更改为HTML等价物。@Guffa你能告诉我我是否做错了什么吗。我尝试了这个
Description.Text=customerInfo.Description.Replace(“\r\n”和“
”).Replace(“\t”和“)
的作用有点相反,例如转动
&进入
。甚至
HtmlEncode
也不一样,它只是对一些字符进行编码,例如将
&
转换为
&,它不会将格式字符更改为HTML等价物。@Guffa你能告诉我我是否做错了什么吗。我尝试了这个
Description.Text=customerInfo.Description.Replace(“\r\n”和“
”).Replace(“\t”和“)Description.Text=HttpUtility.HtmlEncode(customerInfo.Description)
我也试过你的,但没用,我一定是做错了什么事。
Description.Text=HttpUtility.HtmlEncode(customerInfo.Description)