2012-09-14 83 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 =「任何名稱」

相關問題