将web.config设置显示为HTML

时间:2015-12-08 09:31:52

标签: c# html asp.net-mvc

我的web.config文件包含以下内容:

<applicationSettings>
    <MyProject.Properties.Settings>
      <setting name="TermsAndConditions" serializeAs="String">
        <value>&lt;p&gt;
                    My text here...
               &lt;/p&gt;
        </value>
      </setting>
    </MyProject.Properties.Settings>
</applicationSettings>

然后在控制器中我有:

ViewBag.terms = Properties.Settings.Default.TermsAndConditions;

最后,在视图中我有:

<div class="col-lg-2">
    @ViewBag.terms
</div>

网页上显示的内容实际上是下面的内容,而不是转换为HTML的<p>标记:

<p> My text here... </p>

知道如何将标签转换为HTML吗?

2 个答案:

答案 0 :(得分:2)

您不应使用web.config来存储HTML。使用单独的XML文件。

E.g:

<SettingsHtml>
   <Value>
       <![CDATA[<p> My text here... </p>]]>
   </Value>
</SettingsHtml>

CDATA部分中包装HTML将确保在输出内容之前不需要对内容进行HTML编码。

<div class="col-lg-2">
    @ViewBag.terms
</div>

HTML默认会对terms值进行编码。

使用@Html.Raw()

<div class="col-lg-2">
    @Html.Raw(ViewBag.terms)
</div>

答案 1 :(得分:0)

您已经对XML中的数据进行了html编码,因此您需要decode it。您还需要使用Html.Raw输出HTML:

ViewBag.terms = HttpUtility.HtmlDecode(Properties.Settings.Default.TermsAndConditions);

<div class="col-lg-2">
    @Html.Raw(ViewBag.terms)
</div>