首页 文章

来自数据库的Monaco-Editor单字符串

提问于
浏览
0

一直在研究过去几天仍然没有结果 . 我有一个后端数据库,用于保存在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);
            }                    

        }
    }

我希望输入摩纳哥编辑框的文本能够显示换行符 . 任何帮助将不胜感激 .

1 回答

  • 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”))并且换行显示得恰当 . 希望这可以帮助那些希望动态插入摩纳哥编辑器的人 .

相关问题