PageMethods n'est pas défini dans la page ASPX
Je suis à la recherche de quelques vieux code que je ne peux que supposer travaillé à un moment donné.
MyPage.aspx:
function GetCompanyList(officeId) {
var companyList = document.getElementById('<%= CompanyDropDown.ClientID %>');
if (companyList.length == 0)
PageMethods.GetCompanyList(officeId, OnGetCompanyList);
else
EditCompany();
}
Et:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
Code derrière:
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public IEnumerable<CompanyMinimum> GetCompanyList(int officeId) {
return (
from c in Repository.Query<Company>()
where !c.IsDeleted && c.TypeEnumIndex == (short)CompanyRelationshipType.Hotel
select new CompanyMinimum() {
id = c.Id,
desc = c.Description
}
).ToList();
}
Mais à l'appel à PageMethods.GetCompanyList()
dans le premier extrait, Chrome rapports:
PageMethods n'est pas défini
N'importe qui peut voir ce qui a changé pour éviter ce travail?
Remarque: j'ai trouvé des questions similaires, mais ils semblaient tous de ce code ne fonctionne pas dans les pages maîtres ou les contrôles de l'utilisateur, ce qui n'est pas le cas ici.
source d'informationauteur Jonathan Wood
Vous devez vous connecter pour publier un commentaire.
EnablePageMethods
en fait, elle n'interagit avec les méthodes d'unePage
sous-classe qui sontpublic
static
et attribuée comme unWebMethod
.GetCompanyList
a 2 de ceux-ci et juste doit également êtrestatic
.Et, je le soupçonne ce qui se passe, c'est que c'est en laissant
PageMethods
undefined côté client si il ne trouve pas toutes les méthodes qui ont tous les 3.Vous pouvez appeler ASP.NET Page AJAX Méthodes via jQuery, comme ceci:
peut-être que vous êtes en utilisant le Routage dans vos pages. ensuite il doit être mis en chemin réel après appel PageMethods:
Une réponse à partir d'une autre solution qui je pense, devrait être représentée est de savoir si cette erreur se produit sur votre serveur, mais pas localement est de placer le vide de MyPage.aspx espace réservé fichier et maintenant il fonctionne sur le serveur de production.