为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 mxgraph 生成的 xml 传递给控制器​​的动作?

如何将 mxgraph 生成的 xml 传递给控制器​​的动作?

C#
30秒到达战场 2022-12-24 13:47:07
我已经使用 asp.net mvc5 启动了一个项目,然后从 github https://github.com/jgraph/mxgraph的原始来源下载了 mxGraph 项目我已经在我的 mvc 项目中加载了 mxgraph www 文件夹和 src 文件夹,并如下编辑了我的 Index.cshtml 文件此页面加载正确。我的 init.js 如下:// URLs for save and export    window.EXPORT_URL = window.EXPORT_URL || '/export';    window.SAVE_URL = window.SAVE_URL || 'save';    window.OPEN_URL = window.OPEN_URL || '/open.html';    window.RESOURCES_PATH = window.RESOURCES_PATH || '/resources';    window.RESOURCE_BASE = window.RESOURCE_BASE || window.RESOURCES_PATH + '/grapheditor';    window.STENCIL_PATH = window.STENCIL_PATH || '/stencils';    window.IMAGE_PATH = window.IMAGE_PATH || '/images';    window.STYLE_PATH = window.STYLE_PATH || '/styles';    window.CSS_PATH = window.CSS_PATH || '/styles';    window.OPEN_FORM = window.OPEN_FORM || '/open.html';    window.mxBasePath = window.mxBasePath || '/src';    window.mxLanguage = window.mxLanguage || urlParams['lang'];    window.mxLanguages = window.mxLanguages || ['de'];现在我想在绘制图表并单击文件/保存后将生成的 xml 传递给我的操作。
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我找到了我的意思的解决方案。


@{

    Layout = null;

}

<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->

<!DOCTYPE html>

<html>

<head>

    <!--head is as past and jquery added-->

    //previous repeated code collapsed for brevity 


    <script src="~/Scripts/jquery-3.3.1.min.js"></script>

</head>

<body class="geEditor">

    <script type="text/javascript">

        // Extends EditorUi to update I/O action states based on availability of backend

        (function () {

            var editorUiInit = EditorUi.prototype.init;


            EditorUi.prototype.init = function () {

                editorUiInit.apply(this, arguments);

                this.actions.get('export').setEnabled(false);


                //previous repeated code collapsed for brevity 


                this.editor.setFilename('doc1.xml');


                //save editorUi object

                var editorUI = this;


                //this part shal be inserted

                //override EditorUi.saveFile function for customization

                this.save = saveXml;

                function saveXml() {


                    if (editorUI.editor.graph.isEditing()) {

                        editorUI.editor.graph.stopEditing();

                    }


                    var xml = mxUtils.getXml(editorUI.editor.getGraphXml());

                    //xml = encodeURIComponent(xml);


                    if (xml.length < MAX_REQUEST_SIZE) {

                        $.ajax({

                            type: "POST",

                            url: "home/save",

                            processData: false,

                            contentType: "application/json; charset=utf-8",

                            data: JSON.stringify({ 'xml': xml }),

                            success: function (response) {

                                //alert(response.message);

                            },

                            error: function (ex) {

                                alert(ex.message);

                            }

                        });

                    }

                    else {

                        mxUtils.alert(mxResources.get('drawingTooLarge'));

                        mxUtils.popup(xml);


                        return;

                    }


                };


                //reset onload open function                               

                this.open = defaultOpen;

                function defaultOpen() {};


            };


        })();

    </script>

</body>

</html>


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信