Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json参数js+;c#(MVC 3)_C#_Javascript_Ajax_Json_Asp.net Mvc 3 - Fatal编程技术网

Json参数js+;c#(MVC 3)

Json参数js+;c#(MVC 3),c#,javascript,ajax,json,asp.net-mvc-3,C#,Javascript,Ajax,Json,Asp.net Mvc 3,我在javascript中有一个函数,我通过Ajax将json发送到c#,但当我在c#中接收时,它不是json。我怎么做?如果我将Response.Write(arr)放在c#中,则响应是System.string[]。我的项目是MVC3 函数c# public int-salvar(字符串[]arr) { SqlConnection conexao=新的SqlConnection(WebConfiguration Manager.ConnectionString[“strConexao”].T

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

函数c#

public int-salvar(字符串[]arr)
{
SqlConnection conexao=新的SqlConnection(WebConfiguration Manager.ConnectionString[“strConexao”].ToString());
conexao.Open();
SqlTransaction trx=conexao.BeginTransaction();
尝试
{
//截断客户
//BUProjetosDAL=新的BUProjetosDAL();
//dal.不包括客户ECURSO(科内西奥,trx);
DTSReCursorSoClientTableAdapters.RECURSO_ClientTableAdapter tabela=新的DTSReCursorSoClientTableAdapters.RECURSO_ClientTableAdapter();
对于(int j=0;j尝试使用

$.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");
                }
            }
        });

C#自动将JSON对象序列化为正确的参数,即如果您的函数采用参数
Firstname
Lastname
,并且您的JSON具有
Firstname
Lastname
的属性,则会自动分配这些参数。但问题是,在C#中,我没有正确地接收JSON作为参数,arr的值为NULL,但在js中,arr的值是json
$("#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");
                    }
                }
            });
        }
    });
$.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");
                }
            }
        });