通过 javascript 将复杂对象传递到 .Net 服务

发布于 2024-10-24 12:15:25 字数 1518 浏览 3 评论 0原文

我试图弄清楚如何通过 javascript 将复杂对象发送到我的 C# Web 服务。

这里是 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>

我尝试发送的示例:

在此处输入图像描述

I'm trying to figure out how to send a complex object through javascript to my C# webservice.

Here xml string:

<?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>

Example of what I'm trying to send:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时常饿 2024-10-31 12:15:25

正如 Marc 提到的,在 javascript 中使用 JSON 非常容易,所以让我们这样做:

首先创建一个 Web 服务:

[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 从 javascript 对象序列化 jsonString

As Marc mentioned, it is very easy to use JSON in javascript, so lets do that:

First create a web service:

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

That input is a json string which JavaScriptSerializer will turn into a .NET object very easily. DoStuff(MyType) is a method you define that takes whatever input you need and does stuff with it.

Now it's time to consume (I'm using GET here, but if it's active you should POST):

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

use json2.js to serialize the jsonString from a javascript object

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文