Access variable from code behind via javascript

前端 未结 2 585
终归单人心
终归单人心 2020-12-16 23:04

I have the following code that I want to return to a variable \"t\" in javascript:

Code behind:

Public Shared Function GetSomeText() As String
  Dim          


        
相关标签:
2条回答
  • 2020-12-16 23:43

    Try this -- assuming that this a public method on the page. This will call the method GetSomeText() on the page class and then do a Response.Write() of the data to the page as it's being rendered. The result should end up between the single quotes in your javascript.

     var t = '<%= GetSomeText() %>';
    
    0 讨论(0)
  • 2020-12-16 23:54

    You need to write the string to a Javascript variable in server-side code, like this: (In a <script> block in the ASPX page)

    var t = "<%= GetSomeText() %>";
    

    Note that you must correctly escape it, like this: (Or using the 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();
    }
    
    0 讨论(0)
提交回复
热议问题