2017-04-12 1 views
0

Je travaille sur ce problème depuis un certain temps. Fondamentalement, j'utilise Kendo Grid pour afficher les données du contrôleur à ViewPage.Erreur MaxJsonLength dans MVC lors de la liaison de données à KendoGrid

Mais, quand je lance la vue, je continue à obtenir cette erreur maxJsonLengthError

Comment puis-je rectifie ce problème ?? Appréciez toute l'aide à l'avance. Reportez-vous à mon EDIT

Voici mon ControllerCode: -

public ActionResult Index() 
{ 
    ViewData["DealsList"] = objDealerModel.listDeals; 
    return View(); 
} 

Et voici mon Code ViewPage: -

@(Html.Kendo().Grid((IEnumerable<WCB.Models.DealerQueue>)ViewData["DealsList"]) 
     .Name("Grid") 
     .Columns(columns => 
     { 
      columns.Bound(p => p.DealId).Visible(false); 
      columns.Bound(p => p.DealRefNo).Title("Deal No"); 
      columns.Bound(p => p.CustomerName).Title("Customer Name"); 
      columns.Bound(p => p.DealType).Title("Deal Type"); 
      columns.Bound(p => p.Location).Visible(false); 
      columns.Bound(p => p.CreatedDate).Title("Created Date"); 
      columns.Bound(p => p.Currency).Title("Currency"); 
      columns.Bound(p => p.Amount).Title("FCY Amount"); 
      columns.Bound(p => p.DealValue).Title("Deal Amount").ClientTemplate("#= kendo.toString(DealValue, 'n') #"); 
      columns.Bound(p => p.Status); 
      columns.Command(command => command.Custom("ViewDetails").Click("ViewDealDetails")).Title("View"); 
     }) 
       .Pageable(pageable => pageable 
       .Refresh(true) 
       .PageSizes(true) 
       .ButtonCount(20)) 
     .Sortable() 
     .Scrollable(scr => scr.Height("auto")) 
     .Filterable() 
     .DataSource(dataSource => dataSource 
     .Ajax() 
     .ServerOperation(false) 
    ) 

)

EDIT: j'ai essayé d'utiliser ce morceau de code dans myController: -

var jsonResult = Json(objDealerModel.listDeals, JsonRequestBehavior.AllowGet); 
jsonResult.MaxJsonLength = int.MaxValue; 
return jsonResult; 

Quelqu'un peut-il suggérer en fonction de ce que les changements doivent être faits dans ma vuePage pour KENDO GRID ?? Pas trop familier avec Kendo

+0

Juste Hava un oeil à [** ce **] (http://stackoverflow.com/a/7207539/3814721) – mmushtaq

+1

Reportez-vous [cette réponse] (http://stackoverflow.com/questions/ 5692836/maxjsonlength-exception-in-asp-net-mvc-pendant-javascriptserializer). Mais au fond de votre envoyer des données trop à la vue (et personne ne serait en mesure d'absorber des informations beaucoup plus –

+0

@StephenMuecke, essayé d'utiliser var = JsonResult Json (objDealerModel.listDeals, JsonRequestBehavior.AllowGet);. jsonResult.MaxJsonLength = int.MaxValue; return jsonResult; aucune idée sur la façon dont mon viewPage devrait changer basé sur ce ?? – reizonShrestha

Répondre

0

J'ai un même problème et je résous en fixant une valeur plus élevée pour aspnet:MaxJsonDeserializerMembers dans les appsettings:

<appSettings> 
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000" /> 
</appSettings> 

Si ces options ne sont pas travaillez-vous pourriez essayer de créer un JSON personnalisé usine de fournisseur de valeur utilisant JSON.NET comme spécifié dans ce thread.

Éditer: Ou si cela est lié à la liaison Kendo Grille, vous pouvez essayer cela.

public class MySerializer : Kendo.Mvc.Infrastructure.JavaScriptInitializer 
{ 
    public override IJavaScriptSerializer CreateSerializer() 
    { 
     var serializer = base.CreateSerializer() as DefaultJavaScriptSerializer; 
     serializer.MaxJsonLength = serializer.MaxJsonLength * 100; 
     return serializer; 
    } 
} 

Kendo.Mvc.Infrastructure.DI.Current.Register<Kendo.Mvc.Infrastructure.IJavaScriptInitializer>(() => newMySerializer()); 
+0

je pense que le problème est avec Kendo ne pas être capable de lier les données à la grille, parce que quand je passe des données comme JSON sans en essayant de lier les données à Kendo Grid, alors je peux obtenir le JsonResult – reizonShrestha

+0

alors je pense que ce [link] (http://www.telerik.com/forums/another-maxjsonlength-issue) sera utile pour vous –

+0

ou peut-être que ce [lien] (https://github.com/telerik/kendo-ui-cor e/issues/2667), directement à partir de Kendo UI Core. –