Hello to all,
I wrote everything in the bottom of this old Thread: https://es.infragistics.com/community/forums/f/ignite-ui-for-jquery/120173/mvc-grid-jsonreaderexception
But it is closed now.
So aigain:
I'm using a POST-Payload like this:
{"fromDate":"2020-07-15T14:05:59.420Z","tillDate":"2020-07-15T14:05:59.427Z","mandantIds":[13],"filterDisplayText":"15.07.2020 - 15.07.2020 IMPULS KÜCHEN GMBH - 59916 BRILON","reportId":1}
you get this Exception:
Unexpected character encountered while parsing value: [. Path 'mandantIds', line 1, position 91.
independent how your GridModel looks like:
public static GridModel getGridModel(ControllingReport report, ReportRequestObject request) { GridModel gridModel = new GridModel(); gridModel.Height = "100%"; gridModel.Columns.Add(new GridColumn("Product Name", "Name", "string", "300px")); gridModel.DataSource = new List<string>{"1", "2" }; return gridModel;
The Reason:
In GridModel.DataBindInternal()
// extracting parameters for POST requests if (HttpContext.Current != null && HttpContext.Current.Request.HttpMethod == "POST") { Stream req = this.HtmlHelper != null ? this.HtmlHelper.ViewContext.HttpContext.Request.InputStream : HttpContext.Current.Request.InputStream; req.Seek(0, SeekOrigin.Begin); string json = new StreamReader(req).ReadToEnd(); if ((json.StartsWith("{") && json.EndsWith("}")) || (json.StartsWith("[") && json.EndsWith("]"))) { var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(json); if (dict != null) { queryString = dict.Aggregate(new NameValueCollection(queryString), (seed, current) => { seed.Add(current.Key, current.Value); return seed; }); } } }
This line excpects that the whole payload is only a key/val pair of strings ¯\(°_o)/¯
var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
But i need to consume complex types in my middleware that I pass with the POST-Payload
Could you investigate to this please? Can help me with a workaround?
Currently I'm testing with setting:
HttpContext.Current = null;
before I return my GridModel that eliminates the Exception.
Kind regards
Karol
Hello Karol,
Thank you for posting in our community.
I created the following case for you: 'CAS-208357-B7Y3R9' and will update you through it. You could see it in your account in the 'Support Activity' page.