Невозможно отправить значение в Webservice из AJAX Call - PullRequest
0 голосов
/ 02 октября 2018

Webservice

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public Colaborador GetUserInfo(int idColaborador)
    {
        bool Flag = true;    
        string constr = ConfigurationManager.ConnectionStrings["ControloInterno_ConnectionString"].ConnectionString;

        using (SqlConnection con = new SqlConnection(constr))
        {
            string[] Procedure = new string[] { "spOperadores", "spDetalhesColaborador", "spRegDrives" };
            string[] ActionParams = new string[] { "SELECTINF", "SELECTUSR", "SELECTID" };
            Colaborador co = new Colaborador();
            Detalhes dt = new Detalhes();
            Acesso ac = new Acesso();

            for (int i = 0; Flag; i++)
            {
                using (SqlCommand cmd = new SqlCommand(Procedure[i]))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Action", ActionParams[i]);
                    cmd.Parameters.AddWithValue("@idColaborador", idColaborador);



                    cmd.Connection = con;                       
                    con.Open();                             

                    SqlDataReader rdr = cmd.ExecuteReader();

                    if (Procedure[i] == "spOperadores")
                    {
                        while (rdr.Read())
                        {
                            co.Name = rdr["Nome"].ToString();
                            co.Department = rdr["Departamento"].ToString();
                            co.Profile = rdr["DescricaoPerfil"].ToString();
                            co.Name = rdr["Nome"].ToString();
                            co.Department = rdr["Departamento"].ToString();
                            co.Profile = rdr["DescricaoPerfil"].ToString();
                            co.AdminDate = rdr["dataadmin"].ToString();
                            co.Phone = rdr["tele"].ToString();
                            co.Status = rdr["status"].ToString();
                            co.Observations = rdr["Observacoes"].ToString();
                            co.CreationDate = rdr["DataCriacao"].ToString();
                            co.AltDate = rdr["AltData"].ToString();
                            co.Creator = rdr["criador"].ToString();                                
                        }
                        rdr.Close();

                    }
                    else if (Procedure[i] == "spDetalhesColaborador")
                    {
                        while (rdr.Read())
                        {
                            co.Detalhes = dt;
                            co.Detalhes.Description = rdr["Descricao"].ToString();
                            co.Detalhes.Value = rdr["Value"].ToString();                                
                        }
                        rdr.Close();                            
                    }

                    else if (Procedure[i] == "spRegDrives")
                    {
                        while (rdr.Read())
                        {
                            co.Acesso = ac;
                            co.Acesso.drive = rdr["Drive"].ToString();
                            co.Acesso.tipoAcesso = rdr["TipoAcesso"].ToString();
                            co.Acesso.nivel = rdr["nivel"].ToString();                                
                            Flag = false;
                        }
                        rdr.Close();
                    }
                    cmd.Parameters.Clear();                                // Clear SQLCommand Parameters        
                    con.Close();                                                                                                               
                }                    
            }                  
            return co;
        }
    }

и вызов AJAX

 $(document).ready(function () {

        $('#AdminUserNameModal').on('shown.bs.modal', function () {

        var url = "GetColaboradoresWebService.asmx/GetUserInfo";
        var ID = "15";

        $("#UserInfoPanel").html("<div style='text-align:center; border:1px solid red; padding:3px; width:200px'>Please Wait...</div>");

        var request = $.ajax({
            type: "POST",
            url: url,
            data: ID,
            contentType: "application/json; charset-utf-8",
            dataType: "json"
        });

        request.done(function (data) {

            console.log(data);
            var TableContent = "<table class='table table-bordered table-striped'>";


            for (var i = 0; i < data.d.length; i++) {
                TableContent += "<tr>" +
                                        "<td>" + data.d[i].Name + "</td>" +
                                        "<td>" + data.d[i].Detalhes.Description + "</td>" +
                                "</tr>";
                "<tr>" +
                        "<td>" + data.d[i].Name + "</td>" +
                        "<td>" + data.d[i].Detalhes.Description + "</td>" +
                "</tr>";
                "<tr>" +
                        "<td>" + data.d[i].Name + "</td>" +
                        "<td>" + data.d[i].Detalhes.Description + "</td>" +
                "</tr>";

            }
            TableContent += "</table>";
            $("#UserInfoPanel").html(TableContent);

        });
        request.fail(function (data) {
            console.log(data);
        });
    })});

Я уже искал везде и не мог найти ничего, что решило бы мою проблему.Я пытался получить строку тоже и ничего.Я получаю преобразование в int или строковые ошибки, я не понимаю, я пытаюсь отправить строку и получить строку, или int в int и все еще выдает ошибку?В коде я отправляю строку и получаю int, но я просто снова меняю код.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Проблема решена, правильным способом было рассматривать все как строку вроде этой ++

     data: "{idColaborador: " + idColaborador + " }",
0 голосов
/ 02 октября 2018
var idColaborador = 15

попробуйте вместо этого, почему вы отправляете строку в метод, который принимает int в качестве параметра?

Редактировать:

имена ваших свойств должны совпадать с именем параметра в методе, чтобы они могли быть связаны соответствующим образом, как я изменил выше, это будет работать

data:{idColaborador:ID}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...