所以我想将自定义对象发送到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传递给webservice
var postdata = { "iCode": -5, "sMessage": "BlogName " }
我收回内部服务器错误[500]
{“Message”:“无效的JSON原语:iCode。”
我是否需要以某种方式将其包装起来以表明它是此对象的一部分?我试过了
{"__type":"UserSite.General.CodeWithMessage","iCode":-5,"sMessage":"Blog Name Already Exists"}
CodeWithMessage从另一个发送它的Web服务返回而不是接收它。
答案 0 :(得分:1)
你的错误说你Json错了你需要检查你传递给webservice的json字符串。
它可能就像
var postdata = { 'iCode': '-5', 'sMessage': 'BlogName' }
检查jSon字符串示例:jSon网站上的http://www.json.org/js.html ........