2013-03-08 12 views
10

मैं उस्तरा दृश्य इंजन MVC4 (.NET 4.5) आवेदन में त्रुटि निम्नलिखित जब क्रमबद्धता या अक्रमांकन के दौरान कम सेबढ़ाएँ json प्रतिक्रिया maxJsonLength 4

"त्रुटि एक बड़ी JSON उत्तर प्रपत्र सर्वर लोड हो रहा है JSON JavaScriptSerializer का उपयोग कर रहा हूँ

configuration> 
    <system.web.extensions> 
     <scripting> 
      <webServices> 
       <jsonSerialization maxJsonLength="2147483644"/> 
      </webServices> 
     </scripting> 
    </system.web.extensions> 
</configuration> 
: स्ट्रिंग की व्याप्ति लंबाई @ Html.Raw (Json.Encode (jsondata
) "

मैं अपने web.config में maxJsonLength संपत्ति की स्थापना द्वारा की कोशिश की है पर maxJsonLength संपत्ति पर सेट मूल्य से अधिक है

JSON प्रतिक्रिया भेजते समय सर्वर पक्ष पर भी प्रयास किया।

return new JsonResult() 
    { 
     Data = data, 
     ContentType = contentType, 
     ContentEncoding = contentEncoding, 
     JsonRequestBehavior = behavior, 
     MaxJsonLength = Int32.MaxValue 
    }; 

भी सूचीबद्ध सूचीबद्ध हल की कोशिश की: http://brianreiter.org/2011/01/03/custom-jsonresult-class-for-asp-net-mvc-to-avoid-maxjsonlength-exceeded-exception/। लेकिन कुछ भी नहीं ध्यान में रखते हुए निम्नलिखित कोड का उपयोग करके मेरे लिए :(

कुछ मुझे सुझाव है कि कैसे कैसे जेसन प्रतिक्रिया अधिकतम लंबाई बढ़ाने के लिए इस त्रुटि या से बचने के लिए कर सकते हैं काम किया?

+0

आप की कोशिश की यहाँ समाधान का सुझाव दिया http है: // stackoverflow.com/questions/6860053/json-maximum-length-pro ब्लेम-एएसपी-नेट? –

+0

हां मैंने इस समाधान को भी थक दिया है। लेकिन कोई sucess – Nabeel

+0

'मैंने इस समाधान को भी थका दिया है' नाइस फ्रायडियन पर्ची :-) –

उत्तर

20

किसी तरह मैं इस त्रुटि से छुटकारा पाने के।

@{ 
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
serializer.MaxJsonLength = Int32.MaxValue; 
} 
<script type="text/javascript"> 
var entries = @Html.Raw(serializer.Serialize(Model.FeedEntries));  
</script> 

यह कम से कम मेरे लिए सर्वर साइड पर काम कर रहा था नहीं।

+3

यह आपको मदद करता है अगर आपको दृश्य में मॉडल को क्रमबद्ध करना होगा। – Pnct

+0

यह मेरे लिए काम कर रहा है। –

16

समाधान करने के लिए मेरे पैसा। ख क्या है), क्योंकि एक) त्रुटिसंदेश दिया 'System.Web.Mvc.JsonResult maxJsonLength के लिए एक परिभाषा शामिल नहीं है ... 'एमवीसी 4.5 AFAIK में, यह एकमात्र कामकाज वें है काम पर

मैं अपने नियंत्रक में बी डाल दिया। उम्मीद है कि यह किसी की मदद करेगा।

सादर, एसएम

एक)

var jsonResult = Json(list, JsonRequestBehavior.AllowGet); 
jsonResult.maxJsonLength = int.MaxValue; 
return jsonResult; 

ख)

if (Request.IsAjaxRequest()) 
{ 
    //Working solution 
    var serializer = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue, RecursionLimit = 100 }; 

    return new ContentResult() 
    { 
     Content = serializer.Serialize(list), 
     ContentType = "application/json", 
    }; 

    //Trial 2 
    //var jsonResult = Json(list, JsonRequestBehavior.AllowGet); 
    //jsonResult.maxJsonLength = int.MaxValue; 
    //return jsonResult; 

    //Trial 1 
    //return Json(list, JsonRequestBehavior.AllowGet); 
} 
+0

यह एमवीसी 3 –

+1

पर मेरे लिए काम करने का एकमात्र समाधान था एमवीसी 4, समाधान ए) में काम करता है। JsonResult में अपरकेस 'एम' पर ध्यान दें। मैक्सजेसन लम्बाई – StebQC

+0

ए) कस्टम मूल्य –

3

यह मेरे लिए काम किया

return new JsonResult() 
      { 
       Data=jsonData, 
       MaxJsonLength = 86753090, 
       JsonRequestBehavior=JsonRequestBehavior.AllowGet 
      }; 
+0

के साथ मेरे लिए काम कर रहा है जो काम नहीं करता है, और यह चाल है, अच्छा है! – edencorbin

संबंधित मुद्दे