Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
Ask Question
I need to pass the checked check-boxes code to C# from JavaScript. I was able to send the code via JSON. And my JSON value comes as a JArray. And I am getting the exception in the title.
JSON:
"Items": [
"100066",
"100067"
public ActionResult UpdateTransportRequests()
string json;
using (var reader = new StreamReader(Request.InputStream))
json = reader.ReadToEnd();
JObject jo = (JObject)JsonConvert.DeserializeObject(json);
string lineItems = jo.Value<string>("Items");
RequestDataAccess rda = new RequestDataAccess();
decimal reqId = decimal.Parse(lineItems);
rda.ApproveReject_Request(reqId, "A", "");
return Json(new { result = "success" });
Client Side:
function approveAll(requestid) {
var items = [];
$('#grid tbody').find('input:checkbox:checked').each(function (index, item) {
var rowIndex = $(this).closest('tr').index();
items.push($('#grid tbody').find('tr:eq(' + rowIndex + ')').find('td:eq(1)').text().replace('TR-', ''));
$.ajax({
type: "POST",
url: '@Url.Action("UpdateTransportRequestsAll", "TransportRequest")',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ "Items": items }),
success: function (response) {
alert(response.result);
dataType: "json"
Please help me to fix this error.
In this situation, I don't think JsonConvert.DeserializeObject is the appropriate method to use. The error about converting from JArray to JToken likely occurs because DeserializeObject is attempting to directly deserialize to JObject, which will fail because it won't find the required fields on JObject.
Try using JObject.Parse(json) to get a dynamic object. You can use it like this afterwards:
dynamic jo = JObject.Parse(json);
var items = jo.Items;
foreach(var item in items)
string lineItem = (string) item;
decimal reqId = decimal.Parse(lineItem);
// Use as required
–
decimal reqId = (decimal)item;
RequestDataAccess rda = new RequestDataAccess();
rda.AllApproveReject_Request(reqId, "A", "");
return Json(new { result = "success" });
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.