【发布时间】:2018-03-03 06:23:29
【问题描述】:
我有以下 JavaScript 函数:
<script>
$(document).ready(function () {
if('@TempData["Message"]' != "") {
$("#myModal").modal();
}
});
</script>
它只是用TempData 打开一个模式。
我从后端填充 TempData,例如:
res.Error = string.Join<string>("\\n ", errores);
TempData["Message"] = res.Error;
因此,对于每个 res.Error,它都会添加一个转义的新行 (\\n)
当我使用 Chrome 调试应用程序时,TempData 不会转换为:
<script>
$(document).ready(function () {
if('Error1\nError2\nError3\nError executed' != "") {
$("#myModal").modal();
}
});
</script>
相反,它会收到如下内容:
$(document).ready(function () {
if('Error1
Error2
Error3
Error executed' != "") {
$("#myModal").modal();
}
})
如何正确转义这个字符串?
根据下面的评论,我尝试将Environment.NewLine 用作:
res.Error = string.Join<string>(Environment.NewLine, errores);
但是现在 JavaScript 会抛出一个错误:
未捕获的 SyntaxError:无效或意外令牌
JavaScript 输出:
<script>
$(document).ready(function () {
if ('Error1
Error2
Error3' != "") {
$("#myModal").modal();
}
});
</script>
为什么会出现 JavaScript 语法错误?
【问题讨论】:
-
看起来好像英语不是您的第一语言,而且您的第一语言可能是西班牙语。如果是这样,如果您在Stack Overflow en español 上发帖可能会更容易。
标签: javascript c# asp.net-mvc