asp.net web服务:在json中发送json

本文关键字:json net web 服务 asp | 更新日期: 2023-09-27 18:25:47

我正在使用jquery向ASMX web服务发送json字符串。web服务方法定义的代码如下所示:

[WebMethod(EnableSession = true)]
public string DoMyProcess(string TheDataID, string TheUserID, string TheData) {

字符串TheData是我使用序列化的javascript对象MyObject

var TheData = JSON.stringify(MyObject);

发送json的jquery部分如下所示:

var AjaxData = '{"TheDatatID":"' + DatatID + '","TheUserID":"' + UserID + '","TheData":"' + TheData + '"}';
    $.ajax({
      type: "POST",
      url: "../WebServices/MyServices.asmx/DoMyProcess",
      data: AjaxData,
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      cache: "false",
      success: RequestSuccess,
      error: RequestError
    });

事实上,我得到了一个500错误,调试器甚至没有在VS中启动。但是,如果我替换var TheData=JSON.stringfy(MyObject);带有

var TheData = "test";

我能够让调试器在代码隐藏文件的第一行中断。

这一定是在json中发送json时出现问题的结果;它应该行得通,但不行。我错过了什么?

asp.net web服务:在json中发送json

首先,您可以使用fiddler了解有关错误500的更多详细信息。

但我认为错误在于用JSON发送JSON。您必须将字符''"替换为''"

示例:

var TheData = JSON.stringify(MyObject).replace(new RegExp(''"', 'g'),'''"');