在ASP Classic(aspx)网络表单中,我可以在PRE标记中呈现整个HTML,如下所示:
网页:
<pre><asp:label id="ContentBox" runat="server"></asp:label></pre>
ContentBox.Text = html string;
然后整个HTML正确地呈现在网页上。
我想知道如何在ASP.NET MVC Razor视图中做同样的事情。现在,我看到的是一个原始的HTML字符串。
HTML字符串可能是这样的:
<?xml version="1.0" encoding="utf-8"?>
<html>
<head>
<title>A title</title>
<style>
.td_header {background-color: white; text-align:left}
.table_header {background-color: white; width: 100%}
</style>
</head>
<body>
<table style="table_header" frame="void">
<tr>
<td class="td_header">
<img src="logo_v3.jpg" alt="Helping" width="261" height="50" />
</td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:5)
这应该这样做:
<pre>@Html.Raw(Model.HtmlString)</pre>
答案 1 :(得分:0)
像这样的东西
<pre>
@Html.LabelFor(m=>m.ContentBox)
<pre>
这假设您的模型中有一个contentbox属性
这将输出类似
的内容<pre>
<label> blah blah </label>
<pre>
但我认为你认为你需要asp控件来呈现数据......不是这样。
在您的控制器操作方法中,将您的内容填充到视图包中
@ViewBag.ContentBox ="Hello World";
在你的观点上使用它。
<pre>
@ViewBag.ContentBox
<pre>
应按照您的预期进行渲染。
如果您要呈现HTML,则需要将其包装在@html.raw()
中