C# 服务器结果到网页

C# 服务器结果到网页,c#,javascript,jquery,json,callback,C#,Javascript,Jquery,Json,Callback,我试图简单地写一些数据到我的网页作为回调的结果。在我需要输出回调结果之前,一切都正常 客户端: function toServer(data) { var dataPackage = data + "~"; jQuery('form').each(function () { document.getElementById('payload').value = JSON.stringify({ sendData: dataPackage }); $.

我试图简单地写一些数据到我的网页作为回调的结果。在我需要输出回调结果之前,一切都正常

客户端:

function toServer(data) {
    var dataPackage = data + "~";
    jQuery('form').each(function () {
        document.getElementById('payload').value = JSON.stringify({ sendData: dataPackage });
        $.ajax({
            type: "POST",
            async: true,
            url: window.location.href.toString(),
            data: jQuery(this).serialize(),
            success: function (result) {
                //this does not work because it just puts an entire source code copy of my site in there instead...
                //document.getElementById('searchResults').value = result
                console.log("callback compelete");
            },
            error: function(error) {
                console.log("callback Error");
            }
        });
    });
}
服务器端:(页面加载时)

服务器端代码的其余部分工作正常,只处理传入数据库的解析,执行数据库搜索,然后将搜索结果解析为JSON obj

目前,json obj写入页面的唯一方式是在没有回调的情况下调用它(只在页面加载时调用它)。此外,在firebug中,整个页面源代码似乎作为回调的“结果”发回。我确实在回发的“result”中看到了我的json结果,但它也包含整个HTML页面

此外,我似乎无法将结果发布到页面上,这才是重点。实际上,我可以通过简单地在客户端代码中取消注释来获得发布到页面的结果,但它发布了我的站点副本,而不是我认为我创建的实际结果


我错过了什么?如何在C代码中明确说明返回给JS回调的“结果”是什么?

因为您向ASP.NET页面发出请求,所以会得到整个页面。事实上,您请求的是您正在查看的同一页面。服务器正在返回您提交表单时将返回的内容

要获取JSON数据,您需要创建一个web方法来处理您的请求。阅读,它会帮助你。它向您展示了如何返回简单文本,但您也可以返回JSON。这方面的信息

最后,为了确保jQuery将服务器响应解析为JSON,请更改您的请求并明确指出:

function toServer(data) {
    var dataPackage = data + "~";
    jQuery('form').each(function () {
        document.getElementById('payload').value = JSON.stringify({ sendData: dataPackage });
        $.ajax({
            type: "POST",
            async: true,
            url: window.location.href.toString(),
            data: jQuery(this).serialize(),
            dataType: 'json',
            success: function (result) {
                //this does not work because it just puts an entire source code copy of my site in there instead...
                //document.getElementById('searchResults').value = result
                console.log("callback compelete");
            },
            error: function(error) {
                console.log("callback Error");
            }
        });
    });
}

我试图实现articles示例,但从未在回调上调用processCallback的新公共方法。我怀疑这与“掩埋”我的类是如何从页面的codebehind文件呈现页面有关,因此url.com/processCallback DNE。是这样,还是我做了其他错误的事情?
function toServer(data) {
    var dataPackage = data + "~";
    jQuery('form').each(function () {
        document.getElementById('payload').value = JSON.stringify({ sendData: dataPackage });
        $.ajax({
            type: "POST",
            async: true,
            url: window.location.href.toString(),
            data: jQuery(this).serialize(),
            dataType: 'json',
            success: function (result) {
                //this does not work because it just puts an entire source code copy of my site in there instead...
                //document.getElementById('searchResults').value = result
                console.log("callback compelete");
            },
            error: function(error) {
                console.log("callback Error");
            }
        });
    });
}