Javascript 添加参数后,JQuery Ajax POST不再命中服务器端asp.net方法
在添加任何参数之前,每当用户将焦点从一个控件设置到另一个控件时,我都会让这个POST方法命中我的服务器端代码。这很好,但我需要传递id和值的数据。这些值是从我的失败咆哮中收集的内容填充的 问题是我不知道为什么它不再影响我的服务器端例程。我确实环顾四周寻求帮助,我确实清理了一些东西,但我无法准确指出我的问题所在Javascript 添加参数后,JQuery Ajax POST不再命中服务器端asp.net方法,javascript,asp.net,jquery,Javascript,Asp.net,Jquery,在添加任何参数之前,每当用户将焦点从一个控件设置到另一个控件时,我都会让这个POST方法命中我的服务器端代码。这很好,但我需要传递id和值的数据。这些值是从我的失败咆哮中收集的内容填充的 问题是我不知道为什么它不再影响我的服务器端例程。我确实环顾四周寻求帮助,我确实清理了一些东西,但我无法准确指出我的问题所在 $(document).ready(function () { var id; var value; $(".tpControl").blur(function
$(document).ready(function () {
var id;
var value;
$(".tpControl").blur(function () {
id = this.id;
value = $(this).val();
var postdata = { identifier: id, controltext: value };
$.ajax({
type: "POST",
url: "TimePoints.aspx/ClientSideSave",
contentType: "application/json; charset=utf-8",
data: postdata,
dataType: "json",
success: function (msg) {
if (msg.hasOwnProperty("d")) {
OnSuccess(msg.d);
} else {
OnSuccess(msg);
}
},
error: OnFailure
});
});
function OnSuccess(result) {
$.growlUI('AutoSave Successful');
}
function OnFailure(result) {
$.growlUI("ID: " + id, "Answer: " + value);
}
});
我的服务器端非常简单
[WebMethod]
public static void ClientSideSave(string identifier, string controltext)
{
//Bunch of code, shouldn't affect anything.
}
先谢谢你。任何帮助都会很好,我对Jquery和Ajax的世界还很陌生。您很接近,但请记住您发布的是JSON,而不是表单值集合。这意味着,在您的示例中,将在后端引用,可能不是您真正想要的:
var postdata = "{ 'identifier': 'id', 'controltext': 'value' }";
如果您希望以正确的方式使用JSON(JavaScriptObjectNotation),那么您应该遵循以下示例:
我不认为“id”或“value”应该在这里加引号。我将把它命名为金星,因为这让我找到了我需要去的地方,并且有一些有用的链接。我的确切语法是
$var postdata=“{'identifier':'“+id+”,'controltext':'“+value+”}”代码>现在我的服务器端方法被命中并传递我需要收集的变量数据。非常感谢你的帮助。