Как передать Environment.NewLine
(или < br />
) внутри ViewData["msg"]
, который отображается как реальный <br />
внутри самого представления?
Я использую C # ...
Как передать Environment.NewLine
(или < br />
) внутри ViewData["msg"]
, который отображается как реальный <br />
внутри самого представления?
Я использую C # ...
Вы можете просто использовать
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 и о том, как это работает, обратитесь к этому вопрос по ТАК.
Чао!
Вы пробовали \ n или \ r внутри самой строки ViewData?
Использовать это:
TempData["MsgString"] = MvcHtmlString.Create("No Data" + "<br />" + "For Something");
Или с переменными:
TempData["MsgString"] = MvcHtmlString.Create(Strings.StrNoData + "<br />" + Strings.StrSomething);