How should data be passed between client-side Javascript and C# code behind an ASP.NET app?

Posted by ctck on Programmers See other posts from Programmers or by ctck
Published on 2011-11-29T17:23:01Z Indexed on 2011/11/30 2:06 UTC
Read the original article Hit count: 485

Filed under:
|
|
|
|

I'm looking for the most efficient / standard way of passing data between client-side Javascript code and C# code behind an ASP.NET application. I've been using the following methods to achieve this but they all feel a bit of a fudge.

To pass data from Javascript to the C# code is by setting hidden ASP variables and triggering a postback:

<asp:HiddenField ID="RandomList" runat="server" />

function SetDataField(data) {
      document.getElementById('<%=RandomList.ClientID%>').value = data;
}

Then in the C# code I collect the list:

protected void GetData(object sender, EventArgs e)
{
      var _list = RandomList.value;
}

Going back the other way I often use either ScriptManager to register a function and pass it data during Page_Load:

ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);

or I add attributes to controls before a post back or during the initialization or pre-rendering stages:

Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");

These methods have served me well and do the job, but they just dont feel complete. Is there a more standard way of passing data between client side Javascript and C# backend code?

Ive seen some posts like this one that describe HtmlElement class; is this something I should look into?

© Programmers or respective owner

Related posts about web-development

Related posts about c#