Подтвердить что ты не робот

Как отобразить закодированный HTML как декодированный в MVC 3 Razor?

Я использую Razor в MVC 3 и Asp.net С#.

У меня есть вид со следующим кодом. model.ContentBody имеет некоторые HTML-теги.

Мне нужно отобразить этот HTML-контент как DECODED.

Как мне изменить свой код в представлении?

 <div class="display-field">
        @Html.DisplayFor(model => model.ContentBody)
 </div>
4b9b3361

Ответ 1

<div class="display-field">
    @Html.Raw(Model.ContentBody)
</div>

Этот код решил проблему!

Ответ 2

@Html.Raw не работал у меня вот пример: -

  string name = "&lt;p&gt;&lt;span style=&quot;font-size: small; color: #ff0000;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: large; color: #000000;&quot;&gt;Hi&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;This is just a sample,&lt;br /&gt;This will not work with @Html.Raw(),&lt;br /&gt;";
  <span>@Html.Raw(name);</span>

Но это сработало вместо: -

@MvcHtmlString.Create(HttpUtility.HtmlDecode(@model.ContentBody))

или вы также можете использовать: -

@Html.Raw(HttpUtility.HtmlDecode(@model.ContentBody));

Ответ 3

Вы также можете декодировать html в контроллере перед отправкой модели в представление,

WebUtility.HtmlDecode()

    public ActionResult Index(int id)
    {
        var content = _contentRepository.GetContent(id);
        var classViewModel = new ClassViewModel
                                 {
                                     ContentBody = WebUtility.HtmlDecode(ClassViewModel.ContentBody)
                                 };
        return View(classViewModel);
    }

Ответ 4

Пожалуйста, используйте для отображения использования HTML с декодированием.

@MvcHtmlString.Create(@Model.OurVision)   

Ответ 5

Перейдите в "ContentBody" как MvcHtmlString к вашей модели вместо строки.

Таким образом вы можете просто использовать:

<div class="display-field">
        @model.ContentBody
 </div>

в вашем контроллере, чтобы получить MvcHtmlString, просто используйте:

MvcHtmlString myHtmlString = MvcHtmlString.Create("htmlcodeandtext");

Ответ 6

Используйте этот код в контроллере:

string noHTML = Regex.Replace(inputHTML, @"<[^>]+>|&nbsp;", "").Trim();