过去几天一直在研究但仍然没有结果。我有一个后端数据库,用于保存在Monaco-Editor中输入的文本。但是,如果字符串中有新的行返回(\ r \ n),则不会显示/加载文本。我唯一可以显示的文本是删除行返回。
这是一些客户端代码。
<div id="container" style="width:590px;height:400px;border:1px solid grey;white-space:pre-wrap;"></div>
//saving to hidden value
<input type="hidden" runat="server" id="editorValue" />
require.config({ paths: { 'vs': '../node_modules/monaco-editor/min/vs' } });
require(["vs/editor/editor.main"], function () {
var editor = monaco.editor.create(document.getElementById('container'), {
value: ['<%=MyJSText%>'].join('\n'),
language: 'javascript'
});
jQuery(document).ready(function ($) {
jQuery("#<%=linkOK.ClientID%>").on('click', function () {
getVal = editor.getValue();
document.getElementById("<%=editorValue.ClientID%>").value = getVal;
});
});
某些服务器端代码
protected string MyJSText
{
get
{
if (EnableIDEditor)
{
return Server.HtmlDecode(TemplateRevision.JsScripts.Replace(Environment.NewLine, " "));
}
else
{
return Server.HtmlDecode(TemplateRevision.JsScripts);
}
}
}
我希望输入摩纳哥编辑框的文字能够显示换行符。任何帮助将不胜感激。
答案 0 :(得分:0)
最后通过在服务器端添加以下代码解决了这个问题。
protected string MyJSText
{
get
{
if (EnableIDEditor)
{
return Server.HtmlDecode(TemplateRevision?.JsScripts?.Replace(System.Environment.NewLine, "\\\r\\n"));
}
else
{
return Server.HtmlDecode(TemplateRevision.JsScripts);
}
}
}
诀窍是使用.Replace(System.Environment.NewLine,“\\ r \ n”))并且换行符显示正确。希望这可以帮助那些希望动态插入摩纳哥编辑器的人。