当SVG太大时,通过XMLSerializer发送SVG内容不起作用

时间:2016-01-06 15:27:55

标签: javascript json svg send xmlserializer

我正在使用内联SVG。我需要将SVG内容与页面中的其他信息一起发送到服务器(运行ASP.NET MVC)。 当SVG内容很小时,下面的代码工作正常,但是当内容太大时,数据没有被发送,甚至没有发送到控制器。

使用Javascript:

function saveSVG() {
        var rack = document.getElementsByClassName("cwRacksSvgImg");
        var markupTOs = '';
        var script = associados.slice();

        for (var i = 0; i < rack.length; i++) {
            markupTOs = markupTOs + (new XMLSerializer()).serializeToString(rack[i]);
        }

        var svg = document.getElementsByTagName('svg')[0];
        var floor_id = document.getElementById('floor_id').value;
        var markup = (new XMLSerializer()).serializeToString(svg);
        $.ajax({
            type: 'Post',
            dataType: 'json',
            url: '/Planta/SavePlanta/',
            data: JSON.stringify({
                markup: markup,
                markupTOs: markupTOs,
                floor_id: floor_id,
                script: script
            }),
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
            }
        });
    }

控制器

public ActionResult SavePlanta(string markup, string markupTOs, int floor_id, string[] script) {

var bytes = Encoding.UTF8.GetBytes(markup);

}

对类似方法有什么建议可以处理大型SVG数据吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题是由于数据量很大,我收到了错误:

异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过maxJsonLength属性上设置的值。

我在这篇文章后解决了这个问题:

http://forums.asp.net/t/1751116.aspx?How%20to%20increase%20maxJsonLength%20for%20JSON%20POST%20in%20MVC3