Je recherche le moyen le plus efficace / standard de passer des données entre le code JavaScript côté client et le code C # derrière une application ASP.NET. J'ai utilisé les méthodes suivantes pour y parvenir, mais ils se sentent tous un peu un fudge.
Pour passer des données de JavaScript au code C #, vous devez définir des variables ASP masquées et déclencher une publication:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
Ensuite, dans le code C #, je recueille la liste:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
Pour revenir en arrière, j'utilise souvent l'un ou l'autre ScriptManager pour enregistrer une fonction et lui transmettre des données pendant
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
ou j'ajoute des attributs aux contrôles avant un post ou pendant les étapes d'initialisation ou de pré-rendu:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
Ces méthodes m'ont bien servi et font le travail, mais elles ne se sentent pas complètes. Existe-t-il un moyen plus standard de transmettre des données entre JavaScript côté client et le code back-end C #?
J'ai vu des articles comme celui-ci qui décrivent la classe HtmlElement; est-ce quelque chose que je devrais examiner?