Передавать сложные объекты через JavaScript в .Net Service - PullRequest
0 голосов
/ 19 марта 2011

Я пытаюсь выяснить, как отправить сложный объект через JavaScript в мой веб-сервис на C #.

Здесь строка xml:

<?xml version="1.0" encoding=utf-8?><soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>
<SaveResponse xmlns="http://tempuri.org/">
  <RL>
    <response_entries>
      <ResponseEntry>
        <response_id>string</response_id>
        <account_id>string</account_id>
        <organization_id>string</organization_id>
        <form_header_id>string</form_header_id>
        <status>string</status>
        <field0>string</field0>
        <field1>string</field1>
        <field99>string</field99>
      </ResponseEntry>
      <ResponseEntry>
        <response_id>string</response_id>
        <account_id>string</account_id>
        <organization_id>string</organization_id>
        <form_header_id>string</form_header_id>
        <status>string</status>
        <field0>string</field0>
        <field1>string</field1>
        <field99>string</field99>
      </ResponseEntry>
    </response_entries>        
  </RL>
</SaveResponse>

Пример того, что я пытаюсь отправить:

enter image description here

1 Ответ

3 голосов
/ 19 марта 2011

Как упоминал Марк, очень легко использовать JSON в javascript, поэтому давайте сделаем это:

Сначала создайте веб-сервис:

[WebMethod]
public string DoStuff(string json)
{
    var js = new JavaScriptSerializer();
    MyType input = js.Deserialize<MyType>(json);
    return js.Serialize(DoStuff(input));
}

Этот вход является строкой json, котораяJavaScriptSerializer превратится в объект .NET очень легко.DoStuff (MyType) - это метод, который вы определяете, который принимает любой ввод, который вам нужен, и выполняет с ним все.

Теперь пришло время потреблять (я использую GET здесь, но если он активен, вы должны POST):

$.get("TestService.asmx/DoStuff", { json: jsonString })
    .success(function (data) { 
        // code goes here!
    });

используйте json2.js для сериализацииjsonString из объекта JavaScript

...