C# 如何从代码隐藏中向AJAX返回值?
可能重复:C# 如何从代码隐藏中向AJAX返回值?,c#,asp.net,ajax,json,C#,Asp.net,Ajax,Json,可能重复: 这是我的AJAX代码 $.ajax({ type: 'POST', url: 'country_management.aspx/save', cache: false, data: "{'parameter':'paramValue'}", contentType: "application/json; charset=utf-8", dataType: "json",
这是我的AJAX代码
$.ajax({
type: 'POST',
url: 'country_management.aspx/save',
cache: false,
data: "{'parameter':'paramValue'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d);
if (data.d == "error") {
$('.success_box').hide();
$('.error_box').show();
}
else {
$('#name').val('');
$('.error_box').hide();
$('.success_box').show();
}
}
});
代码隐藏:
[WebMethod]
[ScriptMethod]
public static string save(string parameter)
{
string name = HttpContext.Current.Request.QueryString["name"].Trim();
return "error";
}
在写入第一行之后,return语句不会向AJAX返回任何内容 因为您没有发布任何字段或属性“name” 如果在表单中单击按钮后执行ajax,则数据将被序列化表单
另一件事是,为什么要在查询字符串中使用“name”var,我看不到任何带有aspx的url?name=“any name”如果不知道整个应用程序的上下文,就很难回答您的问题。(是否从应用程序的其他地方提供名称,您可以使用会话?) 但是,是什么阻止您在ajax调用中传递名称呢?而不仅仅是通过“参数”发送:“参数值” 您必须记住,查询字符串应该包含您要查找的参数。现在看起来有点像 当你真正需要的时候 例如 Javascript
$.ajax({
type: 'POST',
url: 'country_management.aspx/save',
data: { parameter:'paramValue', name: 'newName'},
success: function (data) {
//do something with the response
}
});
代码隐藏
[WebMethod]
[ScriptMethod]
public static string save(string parameter, string name)
{
PerformSave(name, parameter);
return "Data Saved!";
}
提示
试用此应用程序。当您处理ajax调用等事情时,它非常有用。实际上,任何web开发都是如此。:) 返回的不是JSON,而是一个普通字符串。检查此项。您确定
QueryString[“name”]
没有返回null
?您是说它在这一行之后出错了吗?string name=HttpContext.Current.Request.QueryString[“name”].Trim();你真的只是为了这个目的创建了一个重复的帐户吗?@Rohan我返回了“error”只是为了检查它是否被返回。如果我不写第一行,return语句会返回。。。