L'accès à code derrière fonctions de WebMethod
J'ai un code-behind de la page qui a plusieurs méthode; l'un d'eux est une page de méthode.
[WebMethod]
public static void ResetDate(DateTime TheNewDate)
{
LoadCallHistory(TheNewDate.Date);
}
protected void LoadCallHistory(DateTime TheDate)
{ bunch of stuff }
La méthode LoadCallHistory fonctionne très bien lorsque la page se charge et je peux l'appeler à partir d'autres méthodes à l'intérieur de la page. Cependant, dans la méthode web de la partie, il obtient souligné en rouge avec le message d'erreur "une référence d'objet est requise pour la non-champ statique".
Comment accéder à des fonctions à partir de la page méthode de la partie du code?
Grâce.
OriginalL'auteur frenchie | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas appeler un non-statique méthode à partir d'un contexte statique, sans avoir une instance de la classe. Supprimer
static
deResetDate
ou faireLoadCallHistory
statique.Toutefois, si vous supprimez
static
deResetDate
vous devez avoir une instance d'utiliser cette méthode. Une autre approche consiste à créer une instance de la classe à l'intérieur deResetDate
et l'utilisation que l'instance d'appelLoadCallHistory
, quelque chose comme ceci:Le message d'erreur indique que
ResetDate
a le mot-cléstatic
etLoadCallHistory
ne le fait pas. Lors de l'utilisation de statique, soit à la fois de la méthode doit être statique ou de la méthode appelée doit êtrestatic
, l'appelant ne peut pas être statique si la méthode appelée est pas.Pour citer MSDN sur "Les Classes statiques et les Membres de Classe Statiques"
+1. En d'autres termes, pensez à changer votre LoadCallHistory être
static
.j'ai mis à jour ma réponse un peu.
C'est en soulignant la part de nouveaux CallHistoryHandler(); s'il manque de la directive. D'où vient le CallHistoryHandler() de l'objet direct?
c'était juste un exemple. Quel est le nom de la classe que
LoadCallHistory()
réside dans? Vous avez besoin de créer une nouvelle instance de cette classe dans l'ordre d'appelLoadCallHistory()
.OriginalL'auteur Filip Ekberg
Puisque c'est un
static
méthode, il ne peut en appeler d'autresstatic
méthodes ou de nouveaux objets.Si votre page est la classe la
CallHistory
(conjecture instruite ;)), vous aurez besoin pour ce faire:Ou modifier
LoadCallHistory
êtrestatic
.Pouvez-vous regarder mon autre question. Je suis coincé à l'instant et je pense que c'est parce que je fais quelque chose de mal: stackoverflow.com/questions/4952156/ajax-with-page-method
OriginalL'auteur Oded