微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-如何将JSON发送到Asp.NET Web服务?

我有一个要使用JSON2库进行序列化的javascript对象.然后,我试图将此JSON字符串传递给ASP.net Web服务.我已更改了Web方法,以尝试几种不同的参数配置,但它们均会导致“ 500-内部服务器错误

有人可以给我一个提示吗?

 function postDataToService(data) {
    $.ajax({
        url: "http://localhost:2686/DataCollectionService.asmx/StoreDataOut",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: data,
        success: showSuccessNotice,
        error: showFailureNotice,
        dataType: "json"
    });

} //postdatatoservice

function convertDataToJSON(jsObj) {

    return JSON.stringify({ list: jsObj });

} //converdatatojson

网络服务:

 [WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolBoxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class DataCollectionService : WebService
{

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string StoreDataOut(List<string> list)
    {
        return "Complete";
        //model functionality
    }
}

解决方法:

我知道了..

步骤1:我将JS对象包装在另一个对象中,该对象包含与Web方法中的参数名称匹配的属性.注意周围的引号

return JSON.stringify({'json':jsObj});

步骤2然后,我使用JSON.stringify()序列化了这个新的“包装器”对象.

步骤3 Web方法的参数名称与发布的json属性名称匹配.类型是“对象”

 public string StoreDataOut(object json)
    {

    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐