我正在寻找在ASP.NET应用程序背后的客户端JavaScript代码和C#代码之间传递数据的最有效/标准方式。我一直在使用以下方法来实现此目的,但是它们都感觉有些偏软。
要将数据从JavaScript传递到C#代码,是通过设置隐藏的ASP变量并触发回发:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
然后在C#代码中收集列表:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
回到另一种方式,我经常使用ScriptManager来注册一个函数并在Page_Load期间将其传递数据:
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
或在回发之前,初始化或预渲染阶段添加属性到控件:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
这些方法很好地为我服务并完成了工作,但感觉并不完整。在客户端JavaScript和C#后端代码之间传递数据的方法是否更标准?
我见过像一些帖子这样一个描述的HtmlElement类; 这是我应该研究的东西吗?