ASP.net Literal或Page改变HTML字符串,导致格式化问题

时间:2010-06-16 12:20:44

标签: asp.net formatting literals

我们有一个生成报告的服务(使用单词模板和第三方库),然后以HTML格式返回一个字符串。虽然这个HTML不是很好 - 它在这个字符串中正确格式化。

我们希望此HTML显示在页面上 - 格式完好无损。我们目前所做的是将ASP.net Literal的文本元素设置为此字符串。

虽然这有效,但我注意到它稍微重新格式化了HTML字符串。在大多数情况下,它看起来像生成了一堆新的CSS类,以及HTML中的新样式元素。返回的字符串中不存在此HTML。我可以将所有这些过滤掉,但想知道是否有更好的方法。

我认为Page本身正在改变某些东西。

将此原始HTML显示回用户的最佳方法是什么?我无法直接使用Response.Write(字符串),因为此页面上还有一些其他控件。

3 个答案:

答案 0 :(得分:0)

我没有听说Literal控件按照你所描述的方式运行,并且在我使用它时没有看到它的行为方式,但我之前没有尝试以这种方式输出html。
另一种方法是将html分配给代码隐藏文件中的公共页面属性,然后在aspx文件中使用服务器端脚本标记来显示此属性的内容:

<%=HTMLString %>

答案 1 :(得分:0)

文字控件不会格式化他们的文本值(AFAIK),所以我猜它是别的东西。可能是一个响应过滤器(Request.Filter),可能会改变页面输出?另一种可能性是,包含控件可能在其自定义渲染中改变其子控件(即您的文字)的值。

答案 2 :(得分:0)

这是我自己的错误,第三方图书馆的设置。在它弄乱CSS之前,我正在保存我的比较页面。谢谢你的有用答案 - 我以为我在忘记了!