J'ai besoin d'exécuter javascript avant le chargement de la page dans l'application ASP.NET.
Ma fonction renvoie l'emplacement de l'utilisateur et je voudrais transmettre la valeur côté serveur et charger les données en fonction de l'emplacement.
Le problème est que la fonction javascript s'exécute après le chargement de la page.
Voici mon code:
$(function () {
getLocation();
});
Dans la fonction getLocation, je mets la valeur du champ caché
$("#<%= HfLocation.ClientID %>").val(location);
Dans le code derrière j'essaye d'obtenir de la valeur mais c'est toujours vide
protected void Page_Load(object sender, EventArgs e)
{
var location = HfLocation.Value;
}
3 réponses
J'ai besoin d'exécuter javascript avant le chargement de la page dans l'application ASP.NET
Cette exigence n'a aucun sens. Rappelez-vous comment ASP.NET fonctionne:
- Une requête utilisateur arrive sur le serveur Web
- Le serveur Web envoie la demande au moteur ASP.NET.
- Le moteur ASP.NET instancie la page et parcourt tout le cycle de vie de la page.
- La page est rendue en HTML et envoyée au client
- Le navigateur client construit le DOM, exécute javascript côté client, ...
Vous voyez qu'il est impossible d'exécuter l'étape 5 avant l'étape 3 (au cours de laquelle l'événement▶Load s'exécute).
J'ai besoin d'exécuter javascript avant le chargement de la page dans l'application ASP.NET.
Dans ce cas, vous devrez effectuer deux demandes de page. Vous ne pouvez pas le faire avec une seule demande de page, puisque
Au lieu de cela, ayez une mini-page qui effectue l'appel JS, puis effectue une publication sur la page actuelle ou (probablement mieux), charge une nouvelle page. Vous pouvez transmettre les données de localisation via un formulaire standard (non serveur), ou peut-être en définissant un cookie de JS sur le client, ou en le codant dans la chaîne de requête.
La deuxième page / demande contiendra alors les données dont vous avez besoin lors du déclenchement de l'événement▶Load ().
Faites un rappel ajax en utilisant javascript pour demander les données.
Questions connexes
De nouvelles questions
c#
C # (prononcé "see sharp") est un langage de programmation multi-paradigme de haut niveau, typé statiquement développé par Microsoft. Le code C # cible généralement la famille d'outils et d'exécutions Microsoft .NET, notamment le .NET Framework, .NET Core et Xamarin. Utilisez cette balise pour les questions sur le code écrit en C # ou en spécification formelle de C #.