【问题标题】:Sending Custom Objects to an asp.net webservice将自定义对象发送到 asp.net 网络服务
【发布时间】:2011-12-02 02:26:59
【问题描述】:

所以我想将自定义对象发送到 asp.net 4.0 Webservice。
我一直在发送一堆单独的参数,但我想开始重用一些代码,所以我想做类似的事情

    [WebMethod(Description = "Testing Sending Object In")]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public bool COT(CodeWithMessage CWM)
    {
...

CodeWithMessage 的类在哪里

namespace UserSite
{
    namespace General
    {
        public class CodeWithMessage
        {
            public int iCode { get; set; }
            public string sMessage { get; set; }
            public CodeWithMessage()
            {
            }
        }
    }
}

webservice 将输入定义为

    <?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>
        <COT xmlns="http://localhost">
          <CWM>
            <iCode>int</iCode>
            <sMessage>string</sMessage>
          </CWM>
        </COT>
      </soap:Body>
    </soap:Envelope>

我尝试将以下 json 传递给 web 服务

      var postdata = { "iCode": -5, "sMessage": "BlogName " }

我收到内部服务器错误 [500]

{"Message":"无效的 JSON 原语:iCode。"

我是否需要以某种方式将其包装起来以表明它是该对象的一部分?我试过了

{"__type":"UserSite.General.CodeWithMessage","iCode":-5,"sMessage":"Blog Name Already Exists"}

CodeWithMessage 从另一个发送它而不是接收它的 web 服务返回。

【问题讨论】:

  • 有什么原因你不使用 WCF 而不是传统的 ASMX 技术?
  • 人力资源管理。我猜是因为我不知道 WCF 是如何工作的,或者它甚至取代了 ASXM。我想我得开始研究这个了。谢谢
  • 认真的吗? WCF 于 2006 年随 .NET 3.0 一起发布。
  • 是的。我在软件开发领域工作了 5 年,以帮助我的家人开展业务,最近我又重新投入了工作。2006 年正是我离开这个领域的时候。
  • 我强烈建议您研究 WCF。这是一个很好的参考:msdn.microsoft.com/en-us/netframework/dd939784.aspx

标签: c# asp.net json web-services


【解决方案1】:

您的错误表明您的 Json 错误,您需要检查您传递给 Web 服务的 json 字符串。

可能是这样的

var postdata = { 'iCode': '-5', 'sMessage': 'BlogName' }

检查 jSon 字符串示例:http://www.json.org/js.html 在 jSon 网站上......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多