2016-01-06 23 views
0

我正在使用内联SVG。我需要将SVG内容与页面中的其他信息一起发送到服务器(运行ASP.NET MVC)。 当SVG内容很小时,下面的代码可以正常工作,但是当内容太大时,数据不会被发送,甚至不会被发送到控制器。当SVG太大时,通过XMLSerializer发送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数据有什么建议?

非常感谢您的帮助!

+0

将其转换成JSON客户端相反的,你可以尝试'encodeURIComponent方法()',然后JSON编码它的服务器上。它也可能在一定程度上破裂(FF中的字符数> 207588000)。 – Kaiido

+0

感谢您的回复,我解决了使用此解决方案的问题:http://forums.asp.net/t/1751116.aspx?How%20to%20increase%20maxJsonLength%20for%20JSON%20POST%20in%20MVC3 – Sah

回答