我正在使用内联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数据吗?
提前感谢您的帮助!
答案 0 :(得分:0)
问题是由于数据量很大,我收到了错误:
异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过maxJsonLength属性上设置的值。
我在这篇文章后解决了这个问题: