转义段落不能正常工作

时间:2018-03-03 06:23:29

标签: javascript c# asp.net-mvc

我有以下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语法错误?

ErrorImage

1 个答案:

答案 0 :(得分:0)

不确定你要做什么。

如果您尝试将字符串列表放入字符串中,可以使用:

String.join(Environment.NewLine, errores)

如果您使用此数据仅执行检查(如果列表中存在数据),最好使用单个值,这将有助于您以更简化的方式执行此操作