将JSON数组从控制器传递到JavaScript

时间:2015-05-06 21:44:00

标签: javascript asp.net json asp.net-mvc asp.net-mvc-4

我已经从数据库中创建了一个JSON数组,并将其设置在控制器中,如下所示:

public ActionResult highlight()
{
    var statesHighlight =
        db.Jobs
            .Select(r => r.State);
    return Json(statesHighlight , JsonRequestBehavior.AllowGet);
}

如何在我的视图中将其设置为JavaScript变量?我确信这有一个简单的方法,但我似乎无法弄明白。我使用@ Html.Action还是@ Url.Action?

编辑: 以下是我目前使用我正在使用的插件硬编码数据的方法:

<script type="application/json" id="map-data">
    ["CA","UT","FL","MT","WA","KS","KS","UT"]
</script>

<script>
    var data = $.parseJSON($('#map-data').text());
    var cities = $.parseJSON($('#city-data').text());


    $('img').mapster({
        mapKey: 'state',
        clickNavigate: true,
        isSelectable: false,
        highlight: false,
        onConfigured: function () {

            // make the array into a comma-sparated list
            var csv = data.join(',');

            var city_list = cities.join(',');

            // the 'set' activates the areas
            $('img').mapster('set', true, csv, options = { fillColor: '638EA5' });
            //altImage: '../Images/map_outline_blackStrokeDot.png'
            $('img').mapster('set', true, city_list, options = { fillColor: 'ffffff' });
        }
    });
</script>

1 个答案:

答案 0 :(得分:1)

检查出来:

<script type="text/javascript">
    $(function () {
        $.getJSON('gimmearray'
            , null
            , function (data) {
                console.log(data);
            });
    });
</script>

控制器:

    public JsonResult GimmeArray()
    {
        string[] theArray = {"this", "is", "an", "array"};

        return Json(theArray, JsonRequestBehavior.AllowGet);
    }

在您的控制器上,您可能必须使用ToArray执行该查询。