将数据从ASP.NET传递到Javascript

时间:2013-08-30 05:43:45

标签: javascript jquery asp.net

我正在编写一个数据驱动的Web应用程序,使用ASP.NET作为服务器端技术从SQL Server后端检索数据。虽然我使用服务器端代码来操作输出,但一切正常。但是,我编写了一些jQuery脚本(使用Raphael.js)来绘制基于数据的交互式图形。将数据集传递给javascript函数的最佳方法是什么?

目前我让ASP.NET将数据输出为一些可预测的格式(如表格或类似格式):

<table>
    <tbody>
        <tr id='0'>
            <th>Risk:</th>
            <td class="val">10</td>
            <td>41.7%</td>
            <td class='col'>red</td>
        </tr>
        <tr id='1'>
            <th>Caution:</th>
            <td class="val">6</td>
            <td>25.0%</td>
            <td class='col'>orange</td>
        </tr>
    </tbody>
</table>

然后我在$(function() {})块中解析以提取数据:

$(function() {
    var values = [],
        labels = [];

    $("tbody > tr", this).each(function () {
        values.push(parseInt($("td.val", this).text(), 10));
        labels.push($("td.col", this).text());
    });
});

然后我用raphael将其绘制成图形。完成后,我在数据表上设置display: none

有更好的方法吗?目前的解决方案需要我注意   (a)输出的数据格式,   (b)js脚本和   (c)各方面风格的CSS 确保他们都“同步”。我想知道是否有某种方法使用JSON或其他东西传递数据集?

我目前的解决方案的一个小缺点是,创建图形所需的原始数据仍然在HTML中(尽管被隐藏),所以任何半脑的人都可以查看。

1 个答案:

答案 0 :(得分:2)

将数据从asp.net传递到javascript的最简单方法是将数据写入JSON对象/数组。

在客户端使用变量也允许您使用对PageMethods的Ajax调用来更新它。

c#中有各种库可以让你把对象写入json 我强烈推荐Json.net

可以像

一样简单
string json = JsonConvert.SerializeObject(table);