我有以下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语法错误?
答案 0 :(得分:0)
不确定你要做什么。
如果您尝试将字符串列表放入字符串中,可以使用:
String.join(Environment.NewLine, errores)
如果您使用此数据仅执行检查(如果列表中存在数据),最好使用单个值,这将有助于您以更简化的方式执行此操作