Using ASP.NET C# and Javascript
- by ctck
I'm looking for the most efficient / standardized way of passing data between client javascript code and C# code behind in an ASP.NET application. Currently ive been using the following methods to achieve this but they all feel a bit like a fudge.
The way i pass data from javascript to the C# code behind 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 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 Initialization / pre rendering stages:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
These methods have served me well and do the job. However they just dont feel complete. Is there a more standardized way of passing data between client side markup / javascript and backend code.
Ive seen some posts like this one: Injecting JavaScrip : StackOverflow that describe HtmlElement class. Is this something is should look into?
Thanks everyone for your time.