ฉันกำลังมองหาวิธีที่มีประสิทธิภาพ / มาตรฐานในการส่งผ่านข้อมูลระหว่างรหัส JavaScript ฝั่งไคลเอ็นต์และรหัส C # หลังแอปพลิเคชัน ASP.NET ฉันใช้วิธีการดังต่อไปนี้เพื่อให้บรรลุสิ่งนี้ แต่พวกเขาทั้งหมดรู้สึกว่าเหลวไหล
ในการส่งข้อมูลจาก JavaScript ไปยังรหัส C # คือการตั้งค่าตัวแปร ASP ที่ซ่อนอยู่และเรียกใช้ postback:
<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; นี่คือสิ่งที่ฉันควรตรวจสอบหรือไม่