Search code examples
jsonjquerywebmethod

Passing JSON data object from jquery ajax to asp.net webmethod


I have data similar to this:

var data = {
        email: $("#txtEmail").val(),
        password: $("#txtPassword").val()
    }
    data = JSON.stringify(data);

I use jquery ajax and pass this data to my web method. This all works if my webmethod is like this:

[WebMethod]
    public static Response TryLogin(string email, string password) {..}

But I am trying pass the data to a web method that looks like this:

[WebMethod]
    public static Response TryLogin(LoginData data) {..}

My LoginData class looks similar to this:

public class LoginData
        {
            public string email { get; set; }
            public string password { get; set; }
        }

When I try to do it this way I receive the following error:

error: 500: {"Message":"Invalid web service call, missing value for parameter: \u0027data\u0027.

How do I do this properly?


Solution

  • data = JSON.stringify({data: data});
    

    To elaborate, you are currently sending 2 parameters, whereas your web method expects just one (named data).