如何用jQuery结合Model在textarea中显示含\n\r的字符串?
解决方法
问题核心是@Model.Content中的换行符直接输出到JavaScript字符串后,违反了JS语法规则——JS不允许字符串字面量包含未转义的换行。需要将Model内容转译为符合JS规范的格式,具体方案如下:
方案1:ASP.NET MVC环境
使用Json.Encode自动转义换行、引号等特殊字符,再通过Html.Raw避免HTML编码,确保JS能正确解析:
var content = @Html.Raw(Json.Encode(Model.Content)); $("#ListContainer #@Html.IdFor(model => model.Content)").val(content);
方案2:ASP.NET Core环境
推荐使用System.Text.Json.JsonSerializer完成序列化转义:
var content = @Html.Raw(System.Text.Json.JsonSerializer.Serialize(Model.Content)); $("#ListContainer #@Html.IdFor(model => model.Content)").val(content);
以上两种方式都会把原字符串中的\n\r转译为JS可识别的转义序列,同时处理其他特殊字符,生成合法的JS字符串字面量,彻底解决语法报错问题。
内容的提问来源于stack exchange,提问作者ar.gorgin
相关产品推荐
相关产品推荐

