2013年11月21日 星期四

Ajax 傳遞參數

前言

用 Asp.net MVC + jQuery Ajax 可以很直觀的得到產出
但用 Asp.net WebForm + jQuery Ajax 卻試了很久…
以此記錄一下



本文

前端
<script type="text/javascript"> 
  $(function () { 
    $("select").change(function () { 
       var str = $("select option:selected").text(); 
       $.ajax({ 
         type: "POST",
         //給WebService的其中一個方法,視程式需要 
         url: "WebService1.asmx/GetChartData",
         data: { str: str }, 
         success: function (data) { 
           //接WebService 回傳值
         }
     })
  })
</script>

WebService

/// <summary> 
/// WebService1 的摘要描述 
/// </summary> 
[WebService(Namespace = "")]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class WebService1 : System.Web.Services.WebService
{
  [WebMethod]
  public string HelloWorld()
  {
    return "Hello World";
  }
  [WebMethod] //一定要加
  [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
  public string GetChartData(string str)
  {
    //Do Something
  }
}



PS 紅字部分要相對應

唯一美中不足的就是
Ajax 接回來的資料是 XML
這是因為 WebService soap 的關係
(SOAP:Simple Object Access Protocol,簡單物件存取協定。是一種標準化的通訊規範)

有參考當麻許大大的WebService 使用 JSON 格式傳遞筆記 + JQuery 測試
但仍是未果


參考:
topcat 姍舞之間的極度凝聚-jQuery Ajax 呼叫 Web Service 傳遞參數範例
[c#]asp.net+jQuery+json做Ajax

11/25 更新:
後來有成功以JSON的格回傳回去 在丟 data 過去時也要以 JSON 的格式回傳遞 所以改寫後就是 data: "{'str':'" + str + "'}",

沒有留言:

張貼留言