Asp.net
通過javascript從後面的程式碼訪問變數
我有以下程式碼要返回到 javascript 中的變數“t”:
後面的程式碼:
Public Shared Function GetSomeText() As String Dim result = "This is from code behind" Return result End Functionjavascript中的呼叫者變數:
//This is not working like that, I think var t = GetSomeText();那麼,如何使變數“t”從程式碼隱藏的函式 GetSomeText 中獲取“結果”?
謝謝你。
試試這個——假設這是頁面上的公共方法。這將在頁麵類上呼叫 GetSomeText() 方法,然後在呈現頁面時對頁面執行 Response.Write() 數據。結果應該在您的 javascript 中的單引號之間結束。
var t = '<%= GetSomeText() %>';
您需要將字元串寫入伺服器端程式碼中的 Javascript 變數,如下所示:(在
<script>ASPX 頁面中的塊中)var t = "<%= GetSomeText() %>";請注意,您必須正確轉義它,如下所示:(或使用AntiXSS Toolkit
public static void QuoteString(this string value, StringBuilder b) { if (String.IsNullOrEmpty(value)) return ""; var b = new StringBuilder(); int startIndex = 0; int count = 0; for (int i = 0; i < value.Length; i++) { char c = value[i]; // Append the unhandled characters (that do not require special treament) // to the string builder when special characters are detected. if (c == '\r' || c == '\t' || c == '\"' || c == '\'' || c == '<' || c == '>' || c == '\\' || c == '\n' || c == '\b' || c == '\f' || c < ' ') { if (b == null) { b = new StringBuilder(value.Length + 5); } if (count > 0) { b.Append(value, startIndex, count); } startIndex = i + 1; count = 0; } switch (c) { case '\r': b.Append("\\r"); break; case '\t': b.Append("\\t"); break; case '\"': b.Append("\\\""); break; case '\\': b.Append("\\\\"); break; case '\n': b.Append("\\n"); break; case '\b': b.Append("\\b"); break; case '\f': b.Append("\\f"); break; case '\'': case '>': case '<': AppendCharAsUnicode(b, c); break; default: if (c < ' ') { AppendCharAsUnicode(b, c); } else { count++; } break; } } if (b == null) { b.Append(value); } if (count > 0) { b.Append(value, startIndex, count); } return b.ToString(); }