2013-07-25 3 views
1

Je souhaite passer le paramètre à webmethod mais il n'y a pas d'action. Je supprime les paramètres de la requête de prototype et ajax et tout est ok mais quand je veux utiliser le paramètre ça ne marche pas. Voici mon code:Comment passer du paramètre à la méthode web du prototype

<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); 
    } 

Où est mon erreur?

Répondre

1

Je ne sais pas si elle est correctement mais il a résolu mon problème:

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

I passé paramètres tels que la chaîne de requête.

+1

Ceci est l'une des façons - l'exemple de code ci-dessus fonctionnera aussi - mais les paramètres seront passés en tant que paramètres POST au lieu de GET. Si vous changez «méthode»: «post» à «méthode»: «obtenez» vous obtiendrez le même résultat –

Questions connexes