HTML 在 C# 中使用字符串生成器无法正常工作 ASP.NET MVC

HTML not working fine with string builder in C# ASP.NET MVC

sb.Append("<table style='border:1px solid black; border-collapse:collapse; width:100%;'>");
        sb.Append("<tr style='background:rgb(146,208,80); border:1px solid black;'>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("OPUS ID"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("Location"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("WMS #"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("Carton ID"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("Tracking #"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("Delivery Date"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("Carton Status"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("SKU"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("SKU Description"); sb.Append("</th>");
        sb.Append("<th style='border: 1px solid black; text-align:center; padding:0%;'>"); sb.Append("Qty Outstanding"); sb.Append("</th>");
        sb.Append("</tr>");

        foreach (DataRow row in dt.Rows)
        {
            sb.Append("<tr style='border:1px solid green; border-collapse: collapse; width:100%;'>");

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                sb.Append("<td style='border:1px solid black; border-collapse:collapse; text-align:center; padding:0%;'>");
                string file = row.Field<string>(i);
                sb.Append(file + "</td>");
            }

            sb.Append("</tr>");
        }

        sb.Append("</table>");

上面的代码正在制作 HTML Table 并将其绑定到电子邮件正文中,但是发生了错误。

图像清晰可见:

我同意@Hans Kesting 最好使用 Razor 语法。尤其有用的是摆脱 DataSets 和 DataTabes 并为您的数据使用模型。这将使遍历您的数据并使用 WebGrid 之类的东西更容易地填充 table。但是,如果 none 这是可能的,我过去所做的是:

  • 在 Helper 方法中创建 HTML table 字符串

  • 将 HTML 字符串传递给控制器​​操作方法

  • 将 HTML 字符串存储到 TempData 对象中

  • 访问 TempData 对象并使用以下方法将 table 渲染到视图:

    @Html.Raw(临时数据["html"])