JQuery: возможно ли создать экземпляр класса на клиенте и передать его в $ .ajax для публикации? - PullRequest
0 голосов
/ 13 апреля 2010

что я имею в виду под этим:

У меня есть класс под названием 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 ]

1 голос
/ 13 апреля 2010

Как сказал Дейв, вы должны сериализовать объект между двумя уровнями так же, как вы передаете свой объект из вашего бизнес-уровня в базу данных и т. Д. В приведенном выше примере вы передаете объект JSON по старинке Веб-сервис ASMX. Поэтому убедитесь, что он может десериализовать объект JSON в ваш класс C #.

У меня есть серия постов в блоге о связывании WCF с jQuery с использованием JSON.

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

Вы можете скачать мой последний пример кода:

http://professionalaspnet.com/WCFJQuery.zip

Они записали мою презентацию Philly Code Camp в эти выходные, вы можете посмотреть ее вместе с 9 другими выступлениями здесь:

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

0 голосов
/ 13 апреля 2010

Процесс принятия вашего класса C # и его «отправки» между клиентом и сервером называется сериализацией. Вы можете, если хотите, определить объект javascript, который отображает член-член в ваш класс Customer. Это обычно не обязательно, однако. Вы можете использовать атрибут [Serializable], чтобы «преобразовать» ваш объект в текстовое представление в XML или JSON, а затем отправить его клиенту для обработки в этом формате. В .NET встроены классы, которые могут затем «десериализовать» текстовый формат обратно в экземпляр объекта на сервере.

0 голосов
/ 13 апреля 2010

, если это в MVC, проверьте это сообщение от RM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...