Szukam najbardziej wydajnego / standardowego sposobu przesyłania danych między kodem JavaScript po stronie klienta a kodem C # za aplikacją ASP.NET. Użyłem następujących metod, aby to osiągnąć, ale wszystkie mają trochę krówki.
Aby przekazać dane z JavaScript do kodu C #, należy ustawić ukryte zmienne ASP i wywołać zwrotny:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
Następnie w kodzie C # zbieram listę:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
Wracając w drugą stronę, często używam ScriptManager do rejestrowania funkcji i przekazywania jej danych podczas ładowania strony:
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
lub dodaję atrybuty do kontrolek przed zwrotem postu lub podczas etapów inicjalizacji lub wstępnego renderowania:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
Te metody dobrze mi służyły i wykonują swoją pracę, ale po prostu nie są kompletne. Czy istnieje bardziej standardowy sposób przekazywania danych między kodem JavaScript po stronie klienta a kodem zaplecza C #?
Widziałem kilka postów jak ten , które opisują HTMLElement klasę; czy powinienem to sprawdzić?