我有一些html会出现在每个页面中,所以我把它放在.cs文件中。这段html有很多引号,所以我宁愿不要逃避每个(\“)。这并不难,因为我可以使用find / replace但我想知道。有没有一个很好的方法混合html和CS这样我可以轻松生成页面吗?
答案 0 :(得分:8)
而不是将您的HTML用C#代码移动到资源文件。这是(对于Visual Studio 2008):
在您的代码中,使用Resources.Resource.MyHtml:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Resources.Resource.MyHtml);
}
答案 1 :(得分:4)
对于双引号的具体情况,没有更好的方法。通常,您可以使用逐字字符串。他们将处理换行符和除"
之外的所有转义字符,这些字符应替换为""
:
Response.Write(@"<html>
<body>
<h1 style=""style1"">Hello world</h1>
</body>
</html>");
答案 2 :(得分:3)
为什么不将HTML粘贴到用户控件中,然后将该用户控件添加到使用该HTML的所有页面?
答案 3 :(得分:3)
你在每个页面上都说同样的HTML。您是否考虑过使用包含内容占位符的母版页作为常用内容?您可以将其与King Avitus提到的用户控制理念相结合。
答案 4 :(得分:2)
您可以在asp.net中使用遗留包含指令
然后,您可以将HTML块放在单独的.html文件中。
<!-- #include PathType = FileName -->
答案 5 :(得分:1)
您可以使用单引号执行此操作:
string MyHTML = @"<html>
<body>
<div class='foo'>...</div>
</body>
</html>";
或做双引号:
string MyHTML = @"<html>
<body>
<div class=""foo"">...</div>
</body>
</html>";
答案 6 :(得分:0)
如果使用@string文字,则可以使用2个双引号转义双引号。稍微可读(但不多)......
答案 7 :(得分:0)
您可以使用@来对其进行字面处理,或者您可以查看HtmlTextWriter类以获得更具规划性的方法。