2010-08-03 6 views
1

J'ai donc un contrôle utilisateur ASP.NET qui utilise jQuery AJAX pour appeler une méthode. Voici le jQuery:Récupère la méthode de contrôle utilisateur et les propriétés de la méthode de page statique

$.ajax({ 
    type: 'POST', 
    url: 'Default.aspx/AdvertClick', 
    data: '{"name":"test"}', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    success: function(result) { 
     //do something 
    } 
}); 

Parce qu'il a besoin d'appeler une méthode Web statique, j'ai la méthode AdvertClick dans la page Default.aspx:

[WebMethod()] 
public static string AdvertClick(string name) 
{ 
    return ""; 
} 

Dans ma méthode de AdvertClick, je prends en une valeur de chaîne. J'ai beaucoup de données et de méthodes dans mon contrôle d'utilisateur que j'ai besoin d'accéder afin de faire quelque chose avec cette valeur de chaîne. Mais comme la méthode dans ma page est statique, je ne peux rien accéder à mon contrôle utilisateur sans créer une nouvelle instance du contrôle.

Est-il possible d'accéder aux méthodes de contrôle utilisateur? Dois-je essayer une technique AJAX différente? Je déteste devoir appeler une méthode sur la page, qui doit alors accéder aux données de mon contrôle.

+1

semble que vous ayez besoin de repenser votre design. Les méthodes web ne devraient pas avoir besoin de se soucier des choses sur la page, il devrait être capable de prendre des décisions basées uniquement sur les paramètres (ie le nom de la chaîne). Considérez soit de transmettre plus d'informations à la méthode Web, soit d'utiliser un panneau de mise à jour. – RPM1984

+0

Je suis d'accord avec RPM1984. Bien que je serais vraiment triste de vous voir passer de l'utilisation de JQuery pour AJAX à un panneau de mise à jour. –

Répondre

0

Déplacez votre code AdvertClick de méthode statique dans une classe, puis appelez-le à partir de votre méthode Web et du contrôle sur la page. Le travail pourrait être fait dans une classe, donc les deux peuvent y accéder.

Que fait exactement le contrôle?

Questions connexes