Tôi đang tìm cách truyền dữ liệu hiệu quả / tiêu chuẩn nhất giữa mã JavaScript phía máy khách và mã C # đằng sau một ứng dụng ASP.NET. Tôi đã sử dụng các phương pháp sau để đạt được điều này nhưng tất cả đều cảm thấy hơi khó hiểu.
Để truyền dữ liệu từ JavaScript sang mã C # bằng cách đặt các biến ASP ẩn và kích hoạt một postback:
<asp:HiddenField ID="RandomList" runat="server" />
function SetDataField(data) {
document.getElementById('<%=RandomList.ClientID%>').value = data;
}
Sau đó, trong mã C # tôi thu thập danh sách:
protected void GetData(object sender, EventArgs e)
{
var _list = RandomList.value;
}
Quay trở lại theo cách khác, tôi thường sử dụng ScriptManager để đăng ký một hàm và truyền dữ liệu đó trong Page_Load:
ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true);
hoặc tôi thêm thuộc tính vào các điều khiển trước khi đăng lại hoặc trong giai đoạn khởi tạo hoặc kết xuất trước:
Btn.Attributes.Add("onclick", "DisplayMessage("Hello");");
Những phương pháp này đã phục vụ tôi tốt và thực hiện công việc, nhưng chúng không cảm thấy hoàn chỉnh. Có cách truyền dữ liệu chuẩn hơn giữa mã phía máy khách JavaScript và mã back-end C # không?
Tôi đã thấy một số bài đăng như thế này mô tả lớp HtmlEuity; đây có phải là cái gì đó tôi nên xem xét?