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

jquery, json, webmethod

Solution

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

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

Problem

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?

Original source