【发布时间】:2009-06-11 09:42:10
【问题描述】:
我有一些 html 将出现在每个页面中,所以我将它保存在一个 .cs 文件中。这段 html 有很多引号,所以我不想转义每个 (\")。这并不难,因为我可以使用查找/替换,但我想知道。有没有混合 html 和CS,所以我可以轻松生成页面?
【问题讨论】:
我有一些 html 将出现在每个页面中,所以我将它保存在一个 .cs 文件中。这段 html 有很多引号,所以我不想转义每个 (\")。这并不难,因为我可以使用查找/替换,但我想知道。有没有混合 html 和CS,所以我可以轻松生成页面?
【问题讨论】:
而不是将 C# 代码中的 HTML 移动到资源文件中。方法如下(适用于 Visual Studio 2008):
在您的代码中,使用 Resources.Resource.MyHtml:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Resources.Resource.MyHtml);
}
【讨论】:
对于双引号的具体情况,没有更好的方法。通常,您可以使用逐字字符串。他们将处理换行符和除" 之外的所有转义字符,应将其替换为"":
Response.Write(@"<html>
<body>
<h1 style=""style1"">Hello world</h1>
</body>
</html>");
【讨论】:
为什么不直接将该 HTML 粘贴到用户控件中,然后将该用户控件添加到所有使用该 HTML 的页面?
【讨论】:
您在每个页面上都使用相同的 html。您是否考虑过为常用内容使用带有内容占位符的母版页?您可以将此与 King Avitus 提到的用户控制理念结合起来。
【讨论】:
您可以在 asp.net 中使用旧的包含指令
然后,您可以将 HTML 块放在单独的 .html 文件中。
<!-- #include PathType = FileName -->
【讨论】:
你可以用单引号来做到这一点:
string MyHTML = @"<html>
<body>
<div class='foo'>...</div>
</body>
</html>";
或者做双双引号:
string MyHTML = @"<html>
<body>
<div class=""foo"">...</div>
</body>
</html>";
【讨论】:
如果您使用 @string 文字,您可以使用 2 个双引号来转义双引号。更具可读性(但不多)...
【讨论】:
您可以使用 @ 来按字面意思对待它,或者您可以查看 HtmlTextWriter 类以获得更编程的方法。
【讨论】: