0

我在 javascript 中有一个函数,我通过 Ajax 将 json 发送到 c#,但是当我在 c# 中接收时,它不是 json。我怎么做?如果我将 Response.Write(arr) 放在 c# 中,则响应为 System.string[]。我的项目在 MVC 3 中

函数 c#

public int salvar(string[] arr)
            {

                SqlConnection conexao = new SqlConnection(WebConfigurationManager.ConnectionStrings["strConexao"].ToString());
                conexao.Open();
                SqlTransaction trx = conexao.BeginTransaction();

                try
                {
                    //Truncate cliente_recurso
                    //BUProjetosDAL dal = new BUProjetosDAL();
                   // dal.excluirClientesRecurso(conexao, trx);
                    dtsRecursoClienteTableAdapters.RECURSO_CLIENTETabelaTableAdapter tabela = new dtsRecursoClienteTableAdapters.RECURSO_CLIENTETabelaTableAdapter();

                    for (int j = 0; j <= 149; j++) { // <- here
                        tabela.Insert(arr);
                    }

                    trx.Commit();
                    return 1;
                }
                catch (SqlException ex)
                {
                    try
                    {
                        trx.Rollback();
                        return 0;
                    }
                    catch (Exception exRollback)
                    {
                        return 0;
                    }  
                }

            }

函数js+ajax

$("#btnSalvar").on("click", function () {
        var confirma = confirm("Deseja salvar os dados?");
        if (confirma) {
            var lista = jQuery("#tabelaRecurso").getDataIDs();
            var total = lista.length;
            var arr = [];
            for (var i = 1; i <= lista.length; i++) {
                var rowData = $("#tabelaRecurso").jqGrid('getRowData', i);

                if (rowData.CD_CLIENTE != 0) {
                    arr[i - 1] = {
                        col1: rowData.CD_RECURSO,
                        col2: rowData.NM_RECURSO,
                        col3: rowData.CD_CLIENTE,
                        col4: rowData.LISTA_EMAIL,
                        col5: rowData.LISTA_EMAIL_COPIA
                    }
                }
            }

            $.ajax({
                type: 'POST',
                url: '/Paginas/salvar',
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(arr),
                dataType: 'json',
                success: function (dados) {
                    if (dados == 0) {
                        alert("Nao foi possivel salvar os dados");
                    }
                }
            });
        }
    });
4

1 回答 1

0

尝试使用

$.ajax({
            type: 'POST',
            url: '/Paginas/salvar',
            contentType: "application/json; charset=utf-8",
            data: arr,
            dataType: 'json',
            traditional: true, --> use the traditional object serialization for the array
            success: function (dados) {
                if (dados == 0) {
                    alert("Nao foi possivel salvar os dados");
                }
            }
        });
于 2013-11-06T22:22:39.807 回答