我构建了一个应该用于生成HTML表的字符串。我无法将文本显示为HTML,但它只是以纯文本形式写入。
这是我构建字符串的地方: StringBuilder HTMLTable = new StringBuilder();
HTMLTable.AppendLine("<html>");
HTMLTable.AppendLine("<head>");
HTMLTable.AppendLine("<style type=\"text/css\">");
HTMLTable.AppendLine(" .thd {background: rgb(220,220,220); font: bold 10pt Arial; text-align: center;}");
HTMLTable.AppendLine(" .team {color: white; background: rgb(100,100,100); font: bold 10pt Arial; border-right: solid 2px black;}");
HTMLTable.AppendLine(" .winner {color: white; background: rgb(60,60,60); font: bold 10pt Arial;}");
HTMLTable.AppendLine(" .vs {font: bold 7pt Arial; border-right: solid 2px black;}");
HTMLTable.AppendLine(" td, th {padding: 3px 15px; border-right: dotted 2px rgb(200,200,200); text-align: right;}");
HTMLTable.AppendLine(" h1 {font: bold 14pt Arial; margin-top: 24pt;}");
HTMLTable.AppendLine("</style>");
HTMLTable.AppendLine("</head>");
HTMLTable.AppendLine("</html>");
HTMLTable.AppendLine("<body>");
HTMLTable.AppendLine("<h1>Tournament Results</h1>");
HTMLTable.AppendLine("<table border=\"0\" cellspacing=\"0\">");
for (int row = 0; row <= max_rows; row++)
{
cumulative_matches = 0;
HTMLTable.AppendLine(" <tr>");
//等等。
然后我将此字符串添加到与我的.cshtml文件关联的viewbag中。我尝试过这样的事情:
<text>@ViewBag.bracketHTML</text>
但这不起作用。有任何想法吗?
答案 0 :(得分:3)
首先,您应该采用@ Zhihao的建议并修复HTML
结束标记。
之后,这应该适合你:
首先,使用构建器的ToString()
函数将HTML的值设置为控制器中ViewBag
的属性:
var builder = new StringBuilder();
builder.AppendLine("<div>");
builder.AppendLine("Testing 123");
builder.AppendLine("</div>");
ViewBag.testing = builder.ToString();
接下来,使用Html.Raw()
打印出来:
@Html.Raw(ViewBag.testing)
似乎运作良好!
答案 1 :(得分:0)
有很多方法可以做到这一点。你可以通过
@(new HtmlString(ViewBag.bracketHTML))
或者你可以使用
@MvcHtmlString.Create(ViewBag.bracketHTML)
或者您可以使用@ Html.Raw
@Html.Raw(ViewBag.bracketHTML)