0

我昨天问了一个问题,它因重复原因关闭,但是我仍然没有得到如何解决我的问题的答案,我需要一些帮助。

我正在使用带有脚本管理器的 ASP.NET

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server" />

尝试将数据发布到服务器时出现错误 500。

带有错误 500 的错误代码:

CS:

[WebMethod]
public static void SetCurrentBaseVersion(string id)
{
    // need to get here
}

JS:

function postNewBaseLine() {
    var id = "300";

    $.ajax({
        type: "POST",
        url: "ManagerBaseKit.aspx/SetCurrentBaseVersion",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: {'id' :id},
        success: function (data) {
            alert('success!');
        },
        statusCode: {
            500: function () {
                alert('got error 500');
            }
        }
    });
}

到目前为止,我发现如果我在 webmethod 中删除字符串 id,它工作正常并且我能够到达 SetCurrentBaseVersion(没有收到错误 500)

工作代码:

CS

[WebMethod]
public static void SetCurrentBaseVersion() //removed the string id
{
    // need to get here
}

JS

function postNewBaseLine(id) {
    var id = "300";

    $.ajax({
        type: "POST",
        url: "ManagerBaseKit.aspx/SetCurrentBaseVersion",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        //data: {'id' :id},   removed the data
        success: function (data) {
            alert('success!');
        },
        statusCode: {
            500: function () {
                alert('got error 500');
            }
        }
    });
}
4

1 回答 1

0

您必须将数据作为 json 字符串传递,您需要将数据的值放在双引号中以使其成为字符串。json 格式在引号内有键值对。您需要了解Json 数据格式

  data: "{'id': '" + id+ "'}",

这也可以在不使用键和值周围的引号的情况下使用,但我提到的json 文档用于在键和值周围加上引号。

  data: "{id: " + id + "}",

对于具有两个参数的方法,

背后的代码

[WebMethod()]
public static string CallMethodFromClient(string id, int amount)
{ 

HTML

    data: "{ id : " + id + ", amount : " + amount + " }"
于 2012-10-10T09:10:06.757 回答