2012-09-14 28 views
-1

可能重复:
How To Return Value From Code Behind To AJAX?如何从后面的代码将值返回给AJAX?

这是我的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"; 
} 

WR后在第一行中,return语句不会返回任何内容给AJAX。

+0

你不是返回JSON,而是一个普通的字符串。看看这个http://stackoverflow.com/questions/5364343/asp-net-web-forms-json-return-result。 – Alex

+0

你确定'QueryString [“name”]'没有返回'null'吗? – Rawling

+0

你是说这行后出错吗? string name = HttpContext.Current.Request.QueryString [“name”]。Trim(); –

回答

0

任何URL,而不知道整个应用的上下文中那种很难回答你的问题。 (名称是否从应用程序中的其他地方提供,可以使用会话?)

但是,阻止您在ajax调用中传递名称?而不是仅仅通过'参数'发送:'paramValue'。

你必须记住你的查询字符串应该包含你正在查找的参数。目前看起来像是这样。

http://www.somesite.com/country_management.aspx/save?parameter=paramValue

当你真正需要

例如

http://www.somesite.com/country_management.aspx/save?parameter=paramValue&name=newName

的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!"; 
} 

TIP

试用此应用程序。 Fiddler。当你正在处理像Ajax调用等事情时,它非常有用。实际上,任何Web开发。 :)

0

因为您没有发布任何字段或属性“名称” 如果您在单击表单内的按钮后单击ajax,数据将是表单序列化的表单。

另一件事是,为什么你应该期待“名”无功查询字符串中,我没有看到的aspx?NAME =“任何名称”