2015-12-08 3 views
0

Мой файл web.config имеет следующее:Дисплей настройки web.config, как HTML

<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> 

То, что отображается на веб-странице, буквально ниже, а не тег <p>, преобразованный в HTML:

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

Любая идея, как превратить теги в HTML?

ответ

2

Вы не должны использовать web.config для хранения HTML. Используйте отдельный XML-файл.

например:

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

Обертывание HTML в CDATA разделе будет гарантировать, что вам не нужно HTML кодировать содержимое до его вывода.

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

Will HTML закодировать значение terms по умолчанию.

Использование @Html.Raw():

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

Это было неудачное требование моего проекта, чтобы иметь это в файле web.config. Использование '@ Html.Raw()' исправило проблему, с которой я столкнулся. Ура! –

0

Вы HTML закодированные данные в XML, так что вам нужно decode it. Вы также должны будете использовать Html.Raw для вывода HTML:

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

<div class="col-lg-2"> 
    @Html.Raw(ViewBag.terms) 
</div> 
Смежные вопросы