2013-07-25 5 views
1

Я хочу передать параметр webmethod, но нет действия. Я удаляю параметры из метода и прототипа ajax-запроса, и все в порядке, но когда я хочу использовать параметр, он не работает. Вот мой код:Как передать параметр веб-методу из прототипа

<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'', вы получите тот же результат –

Смежные вопросы