Estoy buscando la forma más eficiente / estándar de pasar datos entre el código JavaScript del lado del cliente y el código C # detrás de una aplicación ASP.NET. He estado usando los siguientes métodos para lograr esto, pero todos se sienten un poco falsos.
Para pasar datos de JavaScript al código de C # se deben configurar variables ASP ocultas y activar una devolución de datos:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
Luego, en el código C #, recopilo la lista:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
Volviendo al otro lado, a menudo utilizo ScriptManager para registrar una función y pasarle datos durante Page_Load:
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
o agrego atributos a los controles antes de una publicación posterior o durante las etapas de inicialización o representación previa:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
Estos métodos me han servido bien y hacen el trabajo, pero simplemente no se sienten completos. ¿Existe una forma más estándar de pasar datos entre JavaScript del lado del cliente y el código de fondo de C #?
He visto algunas publicaciones como esta que describen la clase HtmlElement; ¿Es esto algo que debería investigar?