我有一些包含 \n
的字符串,例如:
ViewBag.stringTest = "Hello\nWorld!\nBreakrow";
我想在我的 View 中使用它,并且在我的 javascript 中更具体
$(document).ready(function () {
var howItShouldBe = "Hello\nWorld!\nBreakrow";
var stringTest1 = "@ViewBag.stringTest";
var stringTest2 = "@Html.Encode(ViewBag.stringTest)";
var stringTest3 = "@(new HtmlString(ViewBag.stringTest))";
var stringTest4 = "@Html.Raw(ViewBag.stringTest)";
var stringTest5 = "@MvcHtmlString.Create(ViewBag.stringTest)";
var stringTest6 = "@ViewBag.stringTest.ToString()";
});
但是,当使用@ razor时,它会用实际的断行/换行符替换\n(就像有点应该的那样)但在我的情况下,它破坏了javascript,我希望它实际显示\n进行换行。
有什么办法可以防止这种情况发生吗?通常 @Html.Raw 足以满足大多数内容,但不适用于此。
最佳答案
这应该可以解决问题:
"@Html.Raw(HttpUtility.JavaScriptStringEncode(s.Name))"
它使用 HttpUtility.JavaScriptStringEncode
,它应该将 CR
转换为 \r
,将 LF
转换为 \n
和 TAB
到 \t
关于javascript - 如何停止 Razors 自动编码\n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603597/