Nick Kahn
Nick Kahn

Reputation: 20078

JQuery: is it possible to instantiate a class on client and pass it to $.ajax to post?

what i mean by that is:

i have a class called Customer:

public class Customer
{
    private string _firstName;
    private string _lastName;

    public string FirstName
    {
        get { return _firstName; }
        set { _firstName = value; } 
    }

    public string LastName
    {
        get { return _lastName; }
        set { _lastName = value; } 
    }
}

how do i instantitate the class "Customer" on the client code and add the data and post it? (not sure if this is possible)

here is my client code:

 var customer = {
                  "firstName": escape($('#txtFirstName').val()),
                  "lastName": escape($('#txtLastName').val())
                };

var jsonText = JSON.stringify({ customer: customer });

$.ajax({
    type: "POST",
    url: "VisitorWS.asmx/AddCustomer",
    data: jsonText,
    //data: JSON.stringify(params),
    contentType: "application/json; charset=utf-8",
    ...........
});

Upvotes: 0

Views: 263

Answers (2)

Chris Love
Chris Love

Reputation: 3893

Like Dave said you have to serialize the object between the two layers just as you do passing your object from your business layer to your database, etc. In the example you are showing above you are passing a JSON object to an old fashion ASMX web service. So make sure it can deserialize the JSON object to your C# class.

I have a series of blog post on binding WCF with jQuery using JSON.

http://professionalaspnet.com/archive/tags/WCF/default.aspx

You can download my latest sample code:

http://professionalaspnet.com/WCFJQuery.zip

They recorded my Philly Code Camp presentation this weekend, you can watch that, along with 9 other talks here:

http://codecamp.phillydotnet.org/2010-1/Lists/Sessions/MSDN.aspx

Upvotes: 1

Dave Swersky
Dave Swersky

Reputation: 34810

The act of taking your C# class and "sending" it between the client and server is called Serialization. You could, if you want, define a javascript object that maps member-to-member to your Customer class. That's usually not necessary, however. You can use the [Serializable] attribute to "convert" your object to a textual representation in XML or JSON, then send that to the client for processing in that format. There are classes built into .NET that can then "deserialize" the textual format back into an instantiated object on the server.

Upvotes: 0

Related Questions