8

次のコントローラーメソッドがあります

    public ActionResult Export(string [,] data, string workbookName)
    {
        ExcelWorkbook workbook = new ExcelWorkbook();
        workbook.AddRows(data);

        return new FileStreamResult(workbook.SaveSheet(), "application/vnd.ms-excel")
        {
            FileDownloadName = workbookName
        };
    }

これは、2 次元配列を取り、ワークシートに出力します。

json配列でjqueryから投稿するときに、dataパラメーターでnull以外のものを取得するのにこれまで失敗しました。データパラメータを入力するために必要なjsonの正しい形式を知っている人はいますか? 私はJquery 1.7.2を使用しています。

ここに私のjqueryがあります

    var arguments = {};

    arguments.data = [["1"], ["2"], ["3"]];
    arguments.workbookName = "test";

    //Populate arrayOfValues 
    $.ajax({
        type: "POST",
        url: '/Excel/Export',
        datatype: "json",
        traditional: true,
        data: arguments,
        success: function (data) {
            alert(data);
        }
    });
4

1 に答える 1

8

多次元配列の代わりにジャグ配列を使用した方がよい場合があります。ギザギザの配列を機能させることに成功しました。また、Explosion Pills も正しく、dataType は応答のタイプです。JSON.stringifyデータを使用して contentType を指定することで、json リクエストを使用してこれを機能させることができましたapplication\json

コントローラ:

    public ActionResult Test(string[][] fields, string workbookName)
    {
        var cr = new JsonResult();
        cr.Data = fields;
        return cr;
    }

JS:

var arguments = {};

arguments.fields = new Array(3);
arguments.fields[0] = new Array(3);
arguments.fields[1] = new Array(3);
arguments.fields[2] = new Array(3);

arguments.fields[0][0] = "hello";

arguments.workbookName = "test";

//Populate arrayOfValues 
$.ajax({
    type: "POST",
    url: '/Home/Test',
    dataType: "json",
    contentType: 'application/json',
    traditional: true,
    data: JSON.stringify(arguments),
    success: function (data) {
        alert(data);
    }
});
于 2013-01-14T01:57:46.323 に答える