我正在尝试使用大量的html代码初始化文字。 例如,这工作正常:
Literal1.Text.= "<ul><li>home<li/><ul/>";//just fine
但: 当我有多行时,它不起作用:
Literal1.Text.= "<ul><li>home
</li></ul>";//error
我知道一个简单的解决方案:
Literal1.Text.= "<ul><li>home"+
"</li></ul>";//nice but time wasting for many lines
但: 例如,当我有100行时,我不想花时间连接字符串。还有更实用的解决方案吗?
具体来说,我的HTML代码如下:
Literal1.Text.= "<ul id="nav">
<li class="current"><a href="http://www.webdesignerwall.com">Home</a></li>
<li><a href="http://www.ndesign-studio.com">People</a>
<ul>
<li><a href="http://www.ndesign-studio.com">Customers</a>
<ul>
<li><a href="http://www.ndesign-studio.com/portfolio">View</a></li>
<li><a href="http://www.ndesign-studio.com/wp-themes">Edit</a></li>
<li><a href="http://www.ndesign-studio.com/wallpapers">Print</a></li>
<li><a href="http://www.ndesign-studio.com/tutorials">Delete</a></li>
</ul>
</li>
<li><a href="http://www.webdesignerwall.com">Employees</a>
<ul>
<li><a href="http://www.ndesign-studio.com/portfolio">View</a></li>
<li><a href="http://www.ndesign-studio.com/wp-themes">Edit</a></li>
<li><a href="http://www.ndesign-studio.com/wallpapers">Print</a></li>
<li><a href="http://www.ndesign-studio.com/tutorials">Delete</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Quotations</a>
<ul>
<li><a href="#">Create</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">View</a></li>
</ul>
</li>
<li><a href="#">Invoices</a>
<ul>
<li><a href="#">Create</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">View</a></li>
</ul>
</li>
<li><a href="#">Receipts</a>
<ul>
<li><a href="#">Create</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">View</a></li>
</ul>
</li>
<li><a href="#">Statements</a>
<ul>
<li><a href="#">Create</a></li>
</ul>
</li>
<li><a href="#">About Us</a></li>
<li class="style1"><a href="#">Contact Us</a></li>
</ul>";
答案 0 :(得分:2)
使用verbatim string literal(以@
开头的那个):
Literal1.Text = @"<ul><li>home
</li></ul>";
答案 1 :(得分:2)
对于少量代码行,我通常使用StringBuilder。这样,连接大型不可变字符串就没有性能问题。
StringBuilder sb = new StringBuilder();
sb.Add("<ul><li>home");
sb.Add("</li></ul>");
对于大量的行,请不要将它们放在代码中。使用System.IO.File阅读它们,以便您可以编辑HTML而无需担心报价加倍。如果您经常使用代码,请使用static class一次性阅读,这样就不会造成大量额外的IO使用。像这样(未经测试):
public static class HTMLStringClass
{
private static string html;
public static string GetHtmlString()
{
if (string.IsNullOrEmpty(html))
html = File.ReadAllText("path/to/file");
return html;
}
}
然后通过这样做来调用它:
Literal1.Text = HtmlStringClass.GetHtmlString();