Asp.net 通过JSON将对象传递给ASP:NETWebService

Asp.net 通过JSON将对象传递给ASP:NETWebService,asp.net,asp.net-ajax,jquery,Asp.net,Asp.net Ajax,Jquery,我试图通过jQueryAjax将一个自定义HTML对象从我的ASP 2.0网站发送到我的webservice。但是我不能让它工作 当我删除ObjectHTML部分时,我的Web服务中的所有内容都被正确解析。但是我在添加ObjectHTML部分时出错 是否可以发送自定义javascript对象 function SavePage() { var rowCount = $('#pageArea div.object').length; var i = 1; var obje

我试图通过jQueryAjax将一个自定义HTML对象从我的ASP 2.0网站发送到我的webservice。但是我不能让它工作

当我删除ObjectHTML部分时,我的Web服务中的所有内容都被正确解析。但是我在添加ObjectHTML部分时出错

是否可以发送自定义javascript对象

function SavePage() {
    var rowCount = $('#pageArea div.object').length;
    var i = 1;

    var objects = "[";
    $('.object').each(function(index) {
        var objectHtml = new ObjectHTML($(this).html());
        objects += "{'ObjectID': " + "'" + $(this).attr('objectid') + "', 'ObjectIndex': '" + $(this).attr('objectindex') + "', 'ObjectHTML': " + objectHtml + "}";
        if (i == rowCount)
            objects += ""
        else
            objects += ",";
        i++;
    });
    objects += "]";

    alert("{'objects': " + objects + "}");

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/Folder/ObjectService.asmx/SavePage",
        data: "{'objects': " + objects + "}",
        dataType: "json",
        success:
            function(msg) {
                alert("Success!");
            },
        error:
            function(XMLHttpRequest, textStatus, errorThrown) {
                alert("Error Occured: " + errorThrown);
            }
    });
}

function ObjectHTML(rawHtml) {
    this.Html = rawHtml;
}
Web服务代码:

[WebMethod(EnableSession = true)]
public string SavePage(List<PageObject> objects)
{
    return "";
}

public class PageObject
{
    private string _objectid, _objectindex;
    private ObjectHTML _objectHtml;

    public string ObjectID
    {
        get { return _objectid; }
        set { _objectid = value; }
    }

    public string ObjectIndex
    {
        get { return _objectindex; }
        set { _objectindex = value; }
    }

    public ObjectHTML ObjectHTML
    {
        get { return _objectHtml; }
        set { _objectHtml = value; }
    }
}

public class ObjectHTML
{
    private string _Html;

    public string Html
    {
        get { return _Html; }
        set { _Html = value; }
    }
}
[WebMethod(EnableSession=true)]
公共字符串保存页(列出对象)
{
返回“”;
}
公共类页面对象
{
私有字符串_objectid,_objectindex;
私有对象HTML ObjectHTML;
公共字符串ObjectID
{
获取{return\u objectid;}
设置{u objectid=value;}
}
公共字符串ObjectIndex
{
获取{return\u objectindex;}
设置{u objectindex=value;}
}
公共对象HTML对象HTML
{
获取{return\u objectHtml;}
设置{u objectHtml=value;}
}
}
公共类ObjectHTML
{
私有字符串Html;
公共字符串Html
{
获取{return\u Html;}
设置{u Html=value;}
}
}

在我看来,您似乎对服务器上的C#类和脚本中的Javascript类有点困惑

您可以做的一件事是使用


这将确保html编码为有效的JSON

您得到的错误是什么?您的函数ObjectHTML(rawHtml)没有返回值。我使用
var ObjectHTML=new ObjectHTML($(this.html())初始化对象
这是有效的,我已经测试过了,
objectHtml.html
有一个值.Lol。。糟糕的是,我没有将我的C#对象从
ObjectHTML
更改为
string
看起来它可以工作:D
var myObject = JSON.stringify({ 
    ObjectId: $(this).attr('objectid'), 
    ObjectIndex: $(this).attr('objectIndex'), 
    ObjectHtml: $(this).html()
});