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クラスを説明するこのような投稿を見てきました。これは私が検討すべきものですか?