2010-07-30 25 views

Trả lời

1

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; 
+0

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

+0

@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.). –

9

Nếu bạn có nghĩa là bạn cần phải vượt qua giá trị cho một hàm javascript, những gì bạn có thể làm là một cái gì đó như thế này ...

Trong tập tin .aspx:

<script language="javascript" type="text/javascript"> 
    var stringValue = '<%=GetStringValue();%>'; 

    // For example: 

    alert(stringValue); 
</sctipt> 

Trong tệp .aspx.cs:

private string GetStringValue() 
{ 
    return "A string value"; 
} 

Sau đó, sẽ hiển thị hộp thông báo javascript cho biết "Giá trị chuỗi "khi trang tải

0

Khi tôi phải chuyển giá trị biến từ PHP sang JS, tôi đã sử dụng php để loại bỏ các js bằng một biến được đặt thành giá trị của biến số php. ví dụ.

//php code 
echo 'var number = ' . $variable . ';'; 
Các vấn đề liên quan