在多行文本框中呈现HTML(或在任何控件中呈现)

时间:2009-10-19 19:06:54

标签: asp.net

我在多行文本框中添加了一些文字。它有一些Html标签,如

等。我如何格式化这个,以便多行文本框中的文本呈现格式化HTML的浏览器?现在它只是渲染纯文本。

附加的一些示例文本:

"<p class=""myclass"">blah blah blah some text</p>"

我试过这个,但它只是呈现编码值,不会将它们呈现为HTML:

txtSomeMultilineTextbox.Text = HttpUtility.HtmlEncode(someText.ToString());

此多行文本框的目的是为了只读条款&amp;条件框。我希望格式化文本在那里,如粗体等。

我对使用第三方控件不感兴趣。只是想弄清楚如何使这个工作。

8 个答案:

答案 0 :(得分:5)

我假设您要使用多行文本框,因为滚动条。你可以用div来实现这个目标。

<div style="width:300px;height:250px;overflow:auto;"></div>

答案 1 :(得分:1)

格式化HTML在标准HTML textarea控件中不起作用。让它工作非常棘手,大多数实现都依赖于iFrame和繁重的javascripting。试图自己实现这个是一个非常糟糕的主意。

幸运的是TinyMCE是开源的,非常棒。

答案 2 :(得分:1)

如果这是只读条款和条件,我假设你想要它在文本框中滚动?您可以使用普通div实现此目的,修复高度并使用overflow:auto css属性

答案 3 :(得分:0)

您需要对所有代码进行编码。例如, &LT; DIV&GT;需要在您的代码中表示为:&amp; lt; div&amp; gt;

所以,“&lt;”成为“&amp; lt;”和“&gt;”成为“&amp; gt;”

答案 4 :(得分:0)

我将转义保留的HTML字符(例如&lt;,&gt;,&amp;和')并查看是否允许显示数据。您可以找到完整的参考here

但就个人而言,我很少通过textarea这样做。相反,我使用ckEditor(以前称为fckEditor)来显示和允许编辑格式丰富的文本。

答案 5 :(得分:0)

为了将HTML视为HTML并拥有知道HTML标签的文本框,您将不得不使用HTMLTextbox。 FCKEditor是一款易于使用且易于使用的编辑器。

另外,不要忘记在您的页面指令上设置validaterequest =“false”以禁用自动HTML注入测试

答案 6 :(得分:0)

这是答案。不要使用ASP.NET控件,如文本框。而是使用建议的div技术(谢谢你)。

答案 7 :(得分:0)

因为我看到的是解决方法。文本框控件上的text属性是html编码的,所以无论你将textbox.text设置为什么html,它都会显示你设置它的字面意思。

这里建议的“答案”或多或少可以解决,因为你没有维护控件,而是你一起使用另一种方法(HTML)。如果您的代码背后与此相关,则必须重写它以使用ajax或w / e来促进后面代码的功能。

而不是\ r \ n等