我正在从c#应用程序中生成动态html,通过使用string,HTML标记将被追加并最终形成完整的html。在所有的字符串生成器中,我将用c#对象替换html占位符。
正在构建的html是复杂的,我需要填充来自c#属性的占位符,有时还需要数据库调用。我没有XML,所以不使用XSLT。因为我的html文件庞大和大量的字符串修补程序是必需的。大部分章节都是基于业务逻辑重复的。
现在一切都很好,我想从字符串构建器中移开经过硬编码的html字符串,因为以后维护将很困难。从控制台应用程序中去掉硬编码html的任何最佳建议。
就性能而言,使用大量字符串生成器(至少使用500个字符串生成器)好吗?例如,我的html拆分如下所示
我刚才提供了几行代码供您参考。
代码示例:
htmlStringBuilder.Append("<table class=\"paddingIndendation\" style=\"width: 100%;\" border=\"1\">");
htmlStringBuilder.Append(string.Format("<tr><td>Location {0}</td><td>:</td><td>{1}</td></tr>", location.LocationNumber, location.AddressLine1));
htmlStringBuilder.Append(string.Format("<tr><td colspan=\"2\" style=\"text-align:right;\"></td><td>{0}</td></tr>", location.AddressLine2));
htmlStringBuilder.Append(string.Format("<tr><td colspan=\"2\" style=\"text-align:right;\"></td><td>{0} {1}</td></tr>", location.PostalCode, location.City));
htmlStringBuilder.Append(string.Format("<tr><td colspan=\"2\" style=\"text-align:right;\"></td><td>{0} {1}</td></tr>", this.Id,this.StartEffectiveDate));我希望将硬编码的html内容移到某个地方(可能是文件或资源文件),并用属性替换占位符。有人能建议最好的方法吗。
发布于 2015-11-24 02:00:30
如果您查看维护预置,实际上您可以使用以下占位符创建HTML文件
<table class="paddingIndendation" style="width: 100%;" border="1">
<tr>
<td>Location ~LocationNumber~</td>
<td>:</td>
<td>~AddressLine1~</td>
</tr>
<tr>
<td colspan="2" style="text-align:right;"></td>
<td>~AddressLine2~</td>
</tr>
<tr>
<td colspan="2" style="text-align:right;"></td>
<td>~PostalCode~ ~City~</td>
</tr>在字符串变量中加载字符串,如下所示
string htmlstring = File.ReadAllText("yourhtml.txt");然后,您可能可以创建一个小函数,在该函数中,可以使用任何属性或数据库调用替换所有这些占位符,如
htmlstring = htmlstring.Replace("~LocationNumber~",location.LocationNumber);
htmlstring = htmlstring.Replace("~AddressLine1~",location.AddressLine1);
htmlstring = htmlstring.Replace("~AddressLine2~",location.AddressLine2);
htmlstring = htmlstring.Replace("~PostalCode~",location.PostalCode);
htmlstring = htmlstring.Replace("~City~",location.City);发布于 2015-11-24 02:02:55
我不知道为什么这个问题会被否决。
评论是对的;不管它表现好与否,你在做这件事时都会遇到很多麻烦。因此,StringBuilder确实是错误的做法。如果你无论如何都要这样做,那么它的表现是否好并不重要。你会用更好的方法来做这件事,而把它保持得足够简单,让你维持下去。不管表演是什么,表演都会是。
如果我是你的话,我要做的就是创建一个本地的、私有的网站,使用ASP.NET (如果你愿意的话),然后使用脚本来检索或者搜索你的网站,然后拉下你想要的所有生成的HTML。
https://stackoverflow.com/questions/33884060
复制相似问题