【问题标题】:mixing html and C#混合html和C#
【发布时间】:2009-06-11 09:42:10
【问题描述】:

我有一些 html 将出现在每个页面中,所以我将它保存在一个 .cs 文件中。这段 html 有很多引号,所以我不想转义每个 (\")。这并不难,因为我可以使用查找/替换,但我想知道。有没有混合 html 和CS,所以我可以轻松生成页面?

【问题讨论】:

    标签: c# asp.net html


    【解决方案1】:

    而不是将 C# 代码中的 HTML 移动到资源文件中。方法如下(适用于 Visual Studio 2008):

    1. 右键单击项目,选择“添加新项目...”
    2. 选择资源文件。将 Resource.resx 保留为文件名。将出现一个提示 - 选择“是”将文件放入 App_GlobalResources 文件夹。
    3. 双击 Resource.resx。添加新的字符串项 MyHtml。

    在您的代码中,使用 Resources.Resource.MyHtml:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Resources.Resource.MyHtml);
    }
    

    另请参阅:How to: Create Resource Files for ASP.NET Web Sites

    【讨论】:

    • 当您想要输出完整的 HTML 时非常有意义,但对于像 ASP.NET MVC 中的页面生成这样的情况(您的页面只是值的零碎替换),让每个小的资源文件中的一段 HTML。
    【解决方案2】:

    对于双引号的具体情况,没有更好的方法。通常,您可以使用逐字字符串。他们将处理换行符和除" 之外的所有转义字符,应将其替换为""

    Response.Write(@"<html>
    <body>
       <h1 style=""style1"">Hello world</h1>
    </body>
    </html>");
    

    【讨论】:

      【解决方案3】:

      为什么不直接将该 HTML 粘贴到用户控件中,然后将该用户控件添加到所有使用该 HTML 的页面?

      【讨论】:

        【解决方案4】:

        您在每个页面上都使用相同的 html。您是否考虑过为常用内容使用带有内容占位符的母版页?您可以将此与 King Avitus 提到的用户控制理念结合起来。

        【讨论】:

          【解决方案5】:

          您可以在 asp.net 中使用旧的包含指令

          然后,您可以将 HTML 块放在单独的 .html 文件中。

          <!-- #include PathType = FileName -->
          

          【讨论】:

            【解决方案6】:

            你可以用单引号来做到这一点:

            string MyHTML = @"<html>
                <body>
                    <div class='foo'>...</div>
                </body>
            </html>";
            

            或者做双双引号:

            string MyHTML = @"<html>
                <body>
                    <div class=""foo"">...</div>
                </body>
            </html>";
            

            【讨论】:

              【解决方案7】:

              如果您使用 @string 文字,您可以使用 2 个双引号来转义双引号。更具可读性(但不多)...

              【讨论】:

                【解决方案8】:

                您可以使用 @ 来按字面意思对待它,或者您可以查看 HtmlTextWriter 类以获得更编程的方法。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-05-18
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多