2

"[\"1454\",\"1455\",\"1456\",\"1457\",\"1458\",\"1459\"]"

I am getting a json string in my string variable in a action method that I am sending as json.stringify. These Are the id's of selected rows from jqgrid..

I just want to create an array of the Id's I am getting . I do not want the others like backslash or forward or double qutes.

Can you pl.Help me . How is this possible in C#

Controller::
 public ActionResult ExportSelectedData(string SelectedRows)
        {
}

View Code::
function genGraph() {
        // location.href = "/WebReports/BatchReport";
        var selRowIds = $("#list1").jqGrid('getGridParam', 'selarrrow');
        var Array = JSON.stringify(selRowIds);

        $.ajax({
            type: 'POST',
            url: '/WebReports/ExportSelectedData',
            data: "{'SelectedRows':'" + Array + "'}",
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (returnValue) {
                location.href = "/WebReports/Download?file=" + returnValue.File;
            }
        });
        alert(Array);
MikeSW
  • 16,140
  • 3
  • 39
  • 53
Sweetie
  • 1,298
  • 6
  • 24
  • 48
  • 1
    Probably it will be easier for you to use `selRowIds.join()` (or `selRowIds.join(",")`) to make string `1454,1455,1456,1457,1458,1459` instead of `["1454","1455","1456","1457","1458","1459"]`. So you can use `data: {SelectedRows: selRowIds.join()}` as parameter of Ajax. On the server side you can use `string[] selRows = SelectedRows.split(',');` to parse the data. – Oleg Apr 14 '14 at 12:39
  • You can try to use [the approach](http://stackoverflow.com/a/9508310/315935) with `ModelBinder` or simple use object with `int[]` or `string[]` as a property [here](http://stackoverflow.com/a/15782451/315935) alternatively. – Oleg Apr 14 '14 at 14:49

1 Answers1

3

this should work use Newtonsoft.Json Library

string[] strings = JsonConvert.DeserializeObject<string[]>(jsonData);

below is the fiddle

http://dotnetfiddle.net/t5kBoy

Nilesh Gajare
  • 6,302
  • 3
  • 42
  • 73