2015-01-22 4 views
3

У меня есть проблема, которая просто заставляет меня чувствовать себя глупо .... Учитывая следующий код в Razor:Razor, StringBuilder, перерыв в HTML-строке?

@{ 
    ... 
    if (purchasedEvent.Address != null && purchasedEvent.Address != String.Empty){ 
     addressBlock.AppendFormat("{0}<br />", purchasedEvent.Address); 
    } 
    ... 
} 
@addressBlock.ToString() 

<br /> получает рассматривается как обычный текст (то есть я в конечном итоге увидеть что-то вроде 123 Cool Street<br />Anytown... оказываемый на странице. Изменение кода (назад) к addressBlock.AppendLine(purchasedEvent.Address) не делает ничего хорошего либо (делает 127 Cool Street Anytown.... что мне нужно сделать, чтобы Бритва двигателя уважения, что разрыв строки?

+0

Возможный дубликат [Что такое MvcHtmlString и когда его использовать?] (Http://stackoverflow.com/questions/2293357/what-is-an-mvchtmlstring-and-when-should-i-use- это) –

+0

Я думаю, что второй ответ на этот вопрос действительно отвечает на этот вопрос, но я не уверен, что вопрос напрямую переводится, хотя это гораздо более расширенный способ его просить. Спасибо за ссылку. Подумайте, может быть, я должен взять это? – MetalPhoenix

+1

На самом деле я бы этого не сделал. Дублированные вопросы, сформулированные по-разному, полезны для людей, пытающихся найти ответ. Закрытые вопросы автоматически не удаляются системой. –

ответ

3

Вы должны использовать Html.Raw. Чтобы процитировать документы: «Возвращает разметку, которая не кодируется HTML».

Так что-то вроде

@html.Raw(addressBlock.ToString()) 

Причина этого в том, что MVC предполагает, что то, что вы даете его текст, как вы хотите его видеть, и, таким образом, HTML кодирует его. Raw позволяет вам сказать это не делать этого.

+0

Yup, это сделал. Я знал, что это просто. Спасибо. – MetalPhoenix