使用JavaScriptSerializer

使用JavaScriptSerializer,javascript,c#,asp.net,javascriptserializer,Javascript,C#,Asp.net,Javascriptserializer,在我的asp.net webform应用程序中,我想将一个变量从codebehind发送到.aspx页面,以便在我的js代码中使用 代码隐藏: public string GetSomestring() { JavaScriptSerializer j = new JavaScriptSerializer(); return j.Serialize("#000"); } 在我的js页面中,我有以下代码

在我的asp.net webform应用程序中,我想将一个变量从codebehind发送到.aspx页面,以便在我的js代码中使用

代码隐藏:

   public string GetSomestring()
    {         
        JavaScriptSerializer j = new JavaScriptSerializer();
        return j.Serialize("#000");         
    }
在我的js页面中,我有以下代码

 <script>
            var randomScalingFactor = function () { return Math.round(Math.random() * 100) };

            var color= '<%= GetSomestring()%>';


            var lineChartData = {
                labels: ["January", "February", "March", "April", "May", "June", "July"],
                datasets: [
                    {
                        label: "My First dataset",
                        fillColor: "rgba(220,220,220,0.2)",
                        strokeColor: "rgba(220,220,220,1)",
                        pointColor: "rgba(220,220,220,1)",
                        pointStrokeColor: color,
                        pointHighlightFill: "#fff",
                        pointHighlightStroke: "rgba(220,220,220,1)",
                        data: [12,23,12,43,10,3]
                    }
                ]
            }

            window.onload = function () {
                var ctx = document.getElementById("canvas").getContext("2d");
                window.myLine = new Chart(ctx).Line(lineChartData, {
                    responsive: true
                });
            }


</script>

我不知道我的第一个代码没有正确执行和pointStrokeColor没有获得“颜色”的问题是什么。要从javascript中的服务器获取价值,您应该在codebehind中使用Ajax。 下面是一些示例代码,可能对您有所帮助

代码隐藏:

       [WebMethod]
       public string GetSomestring()
          {         
            JavaScriptSerializer j = new JavaScriptSerializer();
            return j.Serialize("#000");         
           }
查看:“客户端”

或者试试这个: 将颜色转换为颜色。值

       var result;
     $.ajax({
                url: ../PageName/GetSomestring",
                type: "get",
                dataType: "json",
                contentType: "application/json;charset=utf-8",

                success: function (data, status) {
                    result = data.d;
                },
                error: function (requeset, status, error) {
                    alert(error);
                }
            });
   var color= result ;
              <script>
        var randomScalingFactor = function () { return Math.round(Math.random() * 100) };

        var color= '<%= GetSomestring()%>';


        var lineChartData = {
            labels: ["January", "February", "March", "April", "May", "June", "July"],
            datasets: [
                {
                    label: "My First dataset",
                    fillColor: "rgba(220,220,220,0.2)",
                    strokeColor: "rgba(220,220,220,1)",
                    pointColor: "rgba(220,220,220,1)",
                    pointStrokeColor: color.value,
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(220,220,220,1)",
                    data: [12,23,12,43,10,3]
                }
            ]
        }

        window.onload = function () {
            var ctx = document.getElementById("canvas").getContext("2d");
            window.myLine = new Chart(ctx).Line(lineChartData, {
                responsive: true
            });
        }

希望这能对您有所帮助。谢谢

为什么不直接返回字符串文本而不是序列化它呢?您不能在不进行任何序列化的情况下将颜色值作为字符串返回吗?尝试返回“#000”;而不是返回j.Serialize(#000”);当我想返回一个数组而不是字符串时,我使用Serialize,但当我返回带有Serialize的数组时,我希望这个数组是字段数据的值,我的代码工作不正常如果你想返回数组,那么你的第二次通过测试是不正确的。对于第二个测试,尝试使用颜色数组,看看它是否有效。我认为您使用的是chart.js api,根据文档,它似乎只支持pointStrokeColor参数的一个颜色值。
       var result;
     $.ajax({
                url: ../PageName/GetSomestring",
                type: "get",
                dataType: "json",
                contentType: "application/json;charset=utf-8",

                success: function (data, status) {
                    result = data.d;
                },
                error: function (requeset, status, error) {
                    alert(error);
                }
            });
   var color= result ;
              <script>
        var randomScalingFactor = function () { return Math.round(Math.random() * 100) };

        var color= '<%= GetSomestring()%>';


        var lineChartData = {
            labels: ["January", "February", "March", "April", "May", "June", "July"],
            datasets: [
                {
                    label: "My First dataset",
                    fillColor: "rgba(220,220,220,0.2)",
                    strokeColor: "rgba(220,220,220,1)",
                    pointColor: "rgba(220,220,220,1)",
                    pointStrokeColor: color.value,
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(220,220,220,1)",
                    data: [12,23,12,43,10,3]
                }
            ]
        }

        window.onload = function () {
            var ctx = document.getElementById("canvas").getContext("2d");
            window.myLine = new Chart(ctx).Line(lineChartData, {
                responsive: true
            });
        }
             pointStrokeColor: color.value,