2013-07-23 3 views
0

Я написал следующий код, чтобы принять тег HTML, как данные в моей моделиКак декодировать html-код в textareafor?

[AllowHtml] 
[Required(ErrorMessage = "Post Content Required")] 
public string PostContent { get; set; } 

Он принимает его, но когда я звоню данные обратно отображает данные с HTML тега, как:

<h2><strong>&lt;p&gt;&amp;lt;p&amp;gt;[...] store and many other 
&amp;amp;hellip;&amp;lt;/p&amp;gt;&lt;/p&gt;</strong></h2> 

у меня есть пытался написать @HttpUtility.HtmlDecode(item.PageContent), но он не удаляет теги.

+0

Вы пытаетесь стричьте теги HTML или пытаетесь показать исходный текст, включая теги? Какой источник вы пытаетесь создать? – SLaks

+0

Ehm, тот факт, что этот текст начинается с '

' и заканчивается'

', а декодированный текст также начинается с '

' и заканчивается'

', не означает, что HtmlDecode ничего не сделал! –

+0

Но я хочу просто простой текст без

....

так что я должен делать ??? –

ответ

0

Используйте @ Html.Raw для вывода необработанного HTML-кода. Однако это может привести к тому, что ваш сайт атакует сценарии, поэтому используйте его внимательно.

+0

Я пробовал @ Html.Raw, но он отображает текст с форматированием, поскольку я отформатировал его в редакторе, но все же отображает теги ... –

0

Поскольку у вас есть html уже на поле, я бы просто конвертировал ascii в html, прежде чем отправить его на просмотр. что-то вроде

public string Decode(string value) 
    { 
     return (value) 
      .Replace("&quot;", "\"") 
      .Replace("&lt;", "<") 
      .Replace("&gt;", ">"); 
    } 

    public string Encode(string value) 
    { 
     return (value) 
      .Replace("\"", "&quot;") 
      .Replace("'", "''") 
      .Replace("<", "&lt;") 
      .Replace(">", "&gt;"); 
    } 

то вы можете закодировать его еще раз перед сохранением в базе данных. Надеюсь, это поможет

Смежные вопросы