Comment accéder à la variable JS en C #

Disons que j'ai

<div id="blah">500</div> 

(Contexte: asp.net aspx page) Comment puis-je autoriser le code ac # à accéder à cette valeur?

 <% int numberiwant = ###; // Ideally 500 %> 

Je pensais à quelque chose comme jQuery:

 <script type="text/javascript"> var value = $('#blah').html(); // Then do some magic and pass to c#? </script> 

Y a-t-il une meilleure façon?

Utilisez une boîte de saisie cachée

 <input id="hiddenControl" type="hidden" runat="server" /> 

Mettez votre valeur dans la boîte de saisie avec javascript

 //call this method before you postback, maybe on form submit function SetPostbackValues() { var hiddenControl = '<%= hiddenControl.ClientID %>'; document.getElementById(hiddenControl).value = 500; //or some other code to get your value } 

Accédez à la valeur avec la zone de saisie côté serveur

 protected void btnSubmit_Click(object sender, EventArgs e) { var hiddenValue = hiddenControl.Value; } 

Vous pouvez utiliser une division côté serveur à la place, comme par exemple;

 <asp:Panel ID="blah" runat="server">500</asp:Panel> 

Ensuite, vous pouvez y accéder et son contenu sur le serveur.

Alternativement;

 <div id="blah"><asp:Literal ID="blahContent" runat="server" Text="500" /></div> 

MISE À JOUR: Une fois la question clarifiée, il est clair que cela ne fonctionnera pas. La seule solution est alors d'utiliser javascript pour obtenir la valeur, puis AJAX pour l'envoyer au serveur.

Le code C # dans <% .. %> est exécuté sur le serveur lorsque le HTML est généré. Lorsque la valeur est mise à jour via AJAX, tout se passe sur le client – longtemps après que le C # a fini de fonctionner.

Ajax, recherchez-le, lisez-le, trouvez une bonne bibliothèque et commencez à mettre en œuvre

Le côté serveur n'aura jamais accès direct aux variables du client (javascript). Vous devez les envoyer au serveur d'une manière ou d'une autre, soit via une requête ou une publication, soit via AJAX.