【问题标题】:Unexpected token , - asp value showing as undefined意外标记,-asp 值显示为未定义
【发布时间】:2013-06-26 10:42:08
【问题描述】:

我正在尝试使用数组 json 将一些数据从 vb.net 上传到 asp.net。

我的代码:

 <script type="text/javascript">
   $(function() {

       var a = $("#hidden").val();
       var array = JSON.parse(a);

但是,当我在浏览器上调试它时,“a”和“array”显示为未定义。即使在它背后的代码中显示了值..

经过进一步调查,我发现如果是这样的话它可以工作:

  var a = "[1, 2, 3]";
  var array = JSON.parse(a);

注意它显示为一个字符串,但是当我接受以下字符串时:

  var a = [1, 2, 3];
  var array = JSON.parse(a);

它说它未定义 - Uncaught SyntaxError: Unexpected token,我猜它与 JSON 有关。

现在回到我的代码和我的错误: 后面的代码 (vb)

    Dim array As New ArrayList

    For Each row In ChartData.Rows
        array.Add(row("Day"))
    Next row

    Dim serializer As New JavaScriptSerializer()
    Dim arrayJson As String = serializer.Serialize(array)

    hidden.Value = arrayJson

和asp中的代码

     <asp:HiddenField ID="hidden" runat="server" />         
    var a = $("#hidden").val();
       var array = JSON.parse(a);

我的问题是,为什么它显示未定义!我做错了什么。

谢谢

【问题讨论】:

  • 您确实意识到#hidden 实际上不是 ASP.NET 呈现控件时的 ID?它看起来像ctl00_ContentPlaceHolder1_Hidden

标签: javascript jquery asp.net vb.net visual-studio-2008


【解决方案1】:

在 asp.net 上,呈现的 id 不是您在后面的代码中使用的,要在页面上获取它,您需要使用 ClientID 作为:

var a = $("#<%=hidden.ClientID%>").val();

【讨论】:

    【解决方案2】:

    Json.parse 接受一个字符串并返回一个 json 对象。它需要一个有效的 json 输入来解析输入,这是一个字符串。您还可以在调用parse 之前使用JSON.stringify 方法来确保将输入作为字符串传递。

    【讨论】:

      猜你喜欢
      • 2023-01-30
      • 2023-01-22
      • 2023-03-06
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 2020-06-04
      • 2012-08-02
      • 2011-05-09
      相关资源
      最近更新 更多