Sto cercando il modo più efficiente / standard per trasmettere dati tra codice JavaScript lato client e codice C # dietro un'applicazione ASP.NET. Ho usato i seguenti metodi per raggiungere questo obiettivo, ma tutti si sentono un po 'di caramelle.
Per passare i dati da JavaScript al codice C # è possibile impostare variabili ASP nascoste e attivare un postback:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
Quindi nel codice C # raccolgo la lista:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
Tornando all'altra modalità, utilizzo spesso ScriptManager per registrare una funzione e trasmetterla durante Page_Load:
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
oppure aggiungo attributi ai controlli prima di un postback o durante le fasi di inizializzazione o pre-rendering:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
Questi metodi mi hanno servito bene e ho svolto il lavoro, ma semplicemente non mi sento completo. Esiste un modo più standard per trasmettere i dati tra codice JavaScript lato client e codice back-end C #?
Ho visto alcuni post come questo che descrive HtmlElement class; è questo qualcosa che dovrei esaminare?