Vikas Hire Ответов: 1

Метод веб-службы не вызывается..!


привет,
ниже приведен мой код веб-сервиса. Не работает..!
Я собираюсь передать ему строку JSON.
пожалуйста, скажите мне, это правильно?

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
    //[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public string updateUserInfo2(string inputdata)
    {
        string json="";
        DataTable tblUsers=null;

        var jsonResult = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(inputdata);
        string UserAutoId = jsonResult["UserAutoId"];
        string userId = jsonResult["userId"];
        string fname = jsonResult["fname"];
        string lname = jsonResult["lname"];
        string email = jsonResult["email"];       
        string hieght = jsonResult["hieght"];

        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("UpdateUserInfo2 ", con);
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        da.SelectCommand.Parameters.Add("@UserAutoId", SqlDbType.VarChar).Value = UserAutoId;
        da.SelectCommand.Parameters.Add("@userId", SqlDbType.VarChar).Value = userId;
        da.SelectCommand.Parameters.Add("@firstName", SqlDbType.VarChar).Value = fname;
        da.SelectCommand.Parameters.Add("@lastName", SqlDbType.VarChar).Value = lname;
        da.SelectCommand.Parameters.Add("@emailadr", SqlDbType.VarChar).Value = email;       
        da.SelectCommand.Parameters.Add("@hieght", SqlDbType.VarChar).Value = hieght;
        da.SelectCommand.Parameters.Add("@retValue", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.ReturnValue;
        da.Fill(tblUsers);

        int retval = (int)da.SelectCommand.Parameters["@retValue"].Value;
        if (retval == 1)
        {
            //string result = "1";
            //json = new JavaScriptSerializer().Serialize(result);
            json = DataTableToJSONWithJavaScriptSerializer(tblUsers);
        }
        else if (retval == 2)
        {
            string result = "2";
            json = new JavaScriptSerializer().Serialize(result);
        }
        con.Close();
        return json;
    }


Что я уже пробовал:

Я пытаюсь вызвать веб-сервис с помощью ExtJS.


Ниже приведен код Ext JS.
var data = {};

                        data.inputdata = {
                            UserAutoId: UserAutoId,
                            userId: UserId,
                            fname: fName,
                            lname: lName,
                            email: email,
                            hieght: hieght
                        };
                       
                       
                        var x = Ext.encode(data.inputdata);
                       
                        console.log(x);

                        Ext.Ajax.request({
                            url: 'WebService.asmx/updateUserInfo2',
                            method: 'POST',
                            headers: { 'Content-Type': 'application/json' },
                            jsonData: { inputdata:x },
                            scope: this,

                            success: function (response) {
                                var mydata = Ext.decode(response.responseText);
                                console.log(mydata);

                            }

1 Ответов

Рейтинг:
11

P_Z

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
    //[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public static string updateUserInfo2(string inputdata)

Одно из объяснений статики Почему webmethod должен быть статичным в asp.net (с#)[^]