Bạn có thể tạo ra các kịch bản ở phía máy chủ và nhúng các giá trị trong nó:
StringBuilder sb = new StringBuilder();
sb.Append("<script type=\"text/javascript\"");
sb.Append("var someFunc = function(){");
sb.AppendFormat("alert('{0}');", importantServerSideValue);
sb.Append("};");
sb.Append("</script>");
Page.ClientScript.RegisterClientScriptBlock("genScript", sb.ToString());
Hoặc đặt giá trị trong một yếu tố hình thức ẩn trên trang và truy cập nó từ phía khách hàng Javascript.
<!-- In the Markup -->
<asp:HtmlInputHidden id="hiddenField" runat="server" />
// And in the code-behind
hiddenField.Value = importantServerSideValue;
Nguồn
2010-07-30 13:05:36
StringBuilder để tạo tập lệnh để chèn vào trang, aaargh, mắt của tôi! ;-) Trường nhập ẩn là tốt hơn nhiều mặc dù :) – Rob
@Rob - Hehe. Tôi thường mặc định để xây dựng kịch bản trong mã phía sau trừ khi OP nói rằng anh ta không cần sử dụng bất kỳ phương pháp đặc biệt nào của Đăng ký tập lệnh (như Đăng ký nó như là một tập lệnh khởi động, v.v.). –