asp.net最佳实践字符串连接

时间:2008-12-12 11:55:33

标签: asp.net optimization

我正在尝试找到生成和输出html的最佳实践,这需要首先获取数据库查询以获取信息。目前在aspx页面中我有一个带有runat服务器的div:

<div runat="server" id="leaflet"></div>

现在只是作为开始做一些测试,我有一个在page_load上运行的方法基本上可以:

private void BuildLeaflet(string qnid)
    {
    //gets leaflet details
    QueryLeafletDetails();
    //return concatenated content string
    leaflet.InnerHtml "<h1>" + dr["LSC Descriptor"] + "</h1>";
    }

在真正的解决方案中,返回是大约10个字段的串联,有些很长,因为它们是内容。

我绝不认为这是最好的解决方案,但是什么呢?一个StringBuilder?我可以依次将每个部分写入网站,避免方法中的连接吗?服务器是否最好?

编辑:忘了把我的一些内容部分包含简单(有限)的html,如段落,列表...这样我就可以轻松制作用于网页和打印的文档,我只是使用不同的样式表。

3 个答案:

答案 0 :(得分:4)

我会使用<asp:Literal runat="server" enableViewState="false" id="leaflet" />。这不会在页面上生成任何标记,也不会填充ViewState中的所有文本。

是的,如果你需要连接很多长字符串,请使用StringBuilder。这将提高内存效率。

另一个解决方案是看看你是否可以在页面上做一些固定的标记,并将每个数据库字段的内容放在它自己的控件中(<asp:Literal />?)。

答案 1 :(得分:1)

如果字段数固定(并且相对较小),我将使用string.Format,否则使用StringBuilder。代码的可读性将是我的指南,而不是性能。如果您打算重用它,您可能还想考虑将其抽象为UserControl。然后你可以赋予它可设置的属性并在控件中构建渲染逻辑,以避免重复自己。

答案 2 :(得分:0)

各种各样的人对此进行了基准测试 - 对于&lt; 4项,iirc格式是好的,对于&lt; 7的字符串构建的简单连接,

我强烈建议不要将HTML创建为字符串btw。