在使用错误的序列化或反序列化的JSON javascriptserializer。该字符串的长度超过设定的maxjsonlength属性的值。怎么解决啊,在网上添加
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="1024000" />
</webServices>
</scripting>
</system.web.extensions>
没有用,各位有方法么
贴代码
不知贴哪里的代码
@菇凉很好: 报错附近的。
public ActionResult BorrowingGuideByid(int id)
{
Status sta = new Status();
try
{
string sql = "select * from borrowguideinfo where id={0}";
DataSet ds = provider.GetDataBySql(provider.Format(sql, id));
sta.content = new string[] { ds.Tables[0].Json() };
sta.success = 1;
}
catch (Exception ex)
{
sta.message = ex.Message;
}
return Json(sta);
}
这个是后台方法
$.ajax({
url: '/finance/BorrowingGuideByid',
type: 'post',
data: { id: id },
error: function (e) {
alert(e.statusText);
},
success: function (res) {
if (res.success) {
if (res.content != null) {
var dt = jQuery.parseJSON(res.content[0]);
alert(dt.length)
if (dt.length > 0) {
jGet('arttitle').value = dt[0]['arttitle'];
$('#description').htmlx(dt[0]['content']);
jGet('swf').value = dt[0]['swf'];
jGet('title').value = dt[0]['title'];
if (jGet('swf').value.length > 0) {
$('<span>' + jGet('swf').value + '<img style="cursor: pointer" src="/resource/image/ico/no.gif" onclick="page.removefile(this)"/></span>').appendTo('#divup');
}
}
}
}
else {
alert(res.message);
}
}
});这个是前提调用
@菇凉很好: 检查sta对象。
@幻天芒:
[Serializable]
public class Status
{
public object content;
public string message;
public int success;
public string title;
public Status();
}对象就是这样,感觉没什么问题啊?
[Serializable]是不是这个
@菇凉很好: 可能是哪个字符串太长了。你可以使用Json.Net进行序列化,应该能成功的。
@幻天芒: 就是编辑的内容过多,所以报错,不知道具体这么解决,能贴代码吗?
@菇凉很好: 换用Json.net处理吧。基本不用自带的这个Json。
@幻天芒: 不太明白,不知道怎么弄,这代码都是前面人写的,我只是维护,所以不是很熟
@菇凉很好:
JavaScriptSerializer jss = new JavaScriptSerializer(); jss.MaxJsonLength = int.MaxValue; //这样将最大长度设置一下试试呢。 默认是:2097152
@幻天芒:这个是写在那个部分呢?是方法里面吗?
@菇凉很好: 额,暂时不用这种方案了。你就把你web.config中那个1024000改大一点。多加几个0,应该就不会超长了。
@幻天芒: 哈哈哈哈,有没有一种对牛弹琴的感觉
@羽商宫: 还好,只是思维应变慢了点。应该是经验不足。
@幻天芒: ·····还是不行啊,呜呜
@羽商宫: 技术菜······
@菇凉很好: 感觉出来了,没事了多看看书。
@菇凉很好:
将return Json(sta)替换为 var serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; return serializer.Serialize(sta); ,然后将返回值修改为string。
@菇凉很好: 你先看看如果提交一个比较少的内容的话,会不会出错,看看那个变长了之后会报这个错误。你有源码吗,能一步步调试么?
@羽商宫: 编辑内容少不会报错,就是多的时候报错,调试到后台方法 //sta.content = new string[] { ds.Tables[0].Json() };的时候报错
你哪里调用的这个方法你都不知道么?