2013-07-25 76 views
1

我想將參數傳遞給webmethod,但沒有任何操作。我從方法和原型ajax請求中刪除參數,一切正常,但是當我想使用參數時,它不起作用。這裏是我的代碼:如何將參數傳遞給原型的web方法

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script> 
<script> 

    var xRequest = new Ajax.Request('PrototypeTest.aspx/Test', { 
     method: 'post', 
     parameters: { "id": 'asdf' }, 
     contentType: 'application/json; charset=utf-8', 
     onSuccess: function (val) { 
      var brands = val.responseText.evalJSON().d.evalJSON(); 
      brands.each(function (brand) { 
       alert(brand.Name); 
      }); 
     }, 
     onerror: function (val) { 
      debugger; 
      alert('hata'); 

     } 
    }); 
</script> 

[WebMethod] 
    public static string Test(string id) 
    { 
     List<brand> brands = new List<brand>(); 
     brands.Add(new brand() 
      { 
       Name = "BMW", 
       IsActive = true 
      }); 

     var json = new JavaScriptSerializer(); 
     return json.Serialize(brands); 
    } 

我的錯誤在哪裏?

回答

1

我不知道這是否是正確的做法,但它解決了我的問題:

Ajax.Request('PrototypeTest.aspx/Test?prod=1', {`... 

我傳遞的參數作爲查詢字符串。

+1

這是其中一種方式 - 上面的示例代碼也可以工作 - 但參數將作爲POST參數傳遞,而不是GET。如果你把''method''post''改成''method':'get'',你會得到相同的結果 –