JQuery:是否可以在客户端实例化一个类并将其传递给$ .ajax发布?

时间:2010-04-13 15:41:08

标签: jquery ajax web-services

我的意思是:

我有一个名为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; } 
    }
}

如何在客户端代码上即时显示“客户”类并添加数据并发布? (不确定这是否可行)

这是我的客户代码:

 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",
    ...........
});

3 个答案:

答案 0 :(得分:1)

就像Dave说的那样,您必须在将两个层之间的对象序列化,就像将对象从业务层传递到数据库一样,等等。在上面显示的示例中,您将JSON对象传递给旧时尚ASMX Web服务。因此,请确保它可以将JSON对象反序列化为C#类。

我有一系列关于使用JSON绑定WCF和jQuery的博客文章。

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

您可以下载我的最新示例代码:

http://professionalaspnet.com/WCFJQuery.zip

他们本周末录制了我的费城代码营演示文稿,你可以在这里观看,以及其他9个演讲:

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

答案 1 :(得分:0)

如果是在mvc中检查this post by RM

答案 2 :(得分:0)

获取C#类并在客户端和服务器之间“发送”的行为称为序列化。如果需要,您可以定义一个将成员到成员映射到Customer类的javascript对象。但是,这通常没有必要。您可以使用[Serializable]属性将对象“转换”为XML或JSON中的文本表示形式,然后将其发送到客户端以便以该格式进行处理。 .NET中内置了一些类,然后可以将文本格式“反序列化”回服务器上的实例化对象。