Вы можете просто использовать
HttpUtility.HtmlEncode("<br />");
Имейте , смотрите здесь для дальнейшей информации.
РЕДАКТИРОВАТЬ :
Извините, но я не понял вопроса в начале. Я думал, что вы хотите закодировать переданную строку. Иногда я читаю вопрос слишком быстро:)
В любом случае, чтобы полностью ответить на ваш вопрос, взгляните на эти образцы. Предположим, в вашем действии есть:
[HttpGet]
public virtual ActionResult Index() {
ViewData["Message"] = "This is a test." + "<br />" + "Does it work?";
return View();
}
И, на ваш взгляд, у вас есть
<p>Sample 1: <br /><%= ViewData["Message"]%></p>
<p>Sample 2: <br /><%: ViewData["Message"]%></p>
Обратите внимание на разницу между двумя конструкциями. Вы получите следующие результаты:
Sample 1:
This is a test.
Does it work?
Sample 2:
This is a test.<br />Does it work?
Итак, первый пример использования ответа на ваш вопрос. Ключ в том, чтобы просто не кодировать строку, в отличие от того, что я понял в начале. Вторая конструкция, использующая <%: %>
, доступна, если вы используете .NET 4.0, автоматически кодирует каждую отображаемую строку.
Если вы все еще хотите использовать эту последнюю конструкцию и избежать того, чтобы строка была закодирована, вы должны использовать хитрость. Просто скажите конструкции, что строка уже закодирована и ее не нужно перекодировать. Для этого используйте этот пример кода
[HttpGet]
public virtual ActionResult Index() {
ViewData["Message2"] = MvcHtmlString.Create( "This is a test." + "<br />" + "Does it work?" );
return View();
}
и в представлении обычно используется <%: %>
конструкция
<p>Sample 3: <br /><%: ViewData["Message2"]%></p>
Более подробную информацию об использовании MvcHtmlString и о том, как он работает, см. В этом вопросе о SO.
Ciao!