簡體   English   中英

如何在MVC4中將值從Controller傳遞到Javascript?

[英]How to pass values from Controller to Javascript in MVC4?

我是使用Entity Framework的MVC4的新手。 現在,我獲取列的計數和鍵值,並將它們存儲到一個變量中。 我想將該變量傳遞給JavaScript,以獲取這些值並將其分配到圖表中。 如何根據程序數量獲取動態圖表?

現在,我暫時使用ViewBag。

這是我的控制器代碼:

var qry = db.Tbl_Mst_Programs.Where(r => r.Program != null)
                                           .GroupBy(r => r.Program)
                                           .Select(gr => new { key = gr.Key, Count = gr.Count() }).ToList(); 

 var internship = qry[0];
            var ltv = qry[1];
            var mtv = qry[2];
            var workCampus = qry[3];

            ViewBag.internship = internship;
            ViewBag.ltv = ltv;
            ViewBag.mtv = mtv;
            ViewBag.workCampus = workCampus;
            return View();

這是我的圖表查看代碼:

<script type="text/javascript">
        var internship = @ViewBag.internship;
        var ltv=@ViewBag.ltv;
        var mtv=@ViewBag.mtv;
        var worcmps=@ViewBag.workCampus;

     var testdata = [
    {
        key: "Internship",
        y: internship
    },
    {
        key: "LTV",
        y: ltv
    },
    {
        key: "MTV",
        y: mtv
    },
    {
        key: "Work Campus",
        y: worcmps
    }
  ];

    function thirtySeries() {
            var data = [];
            for (var i = 0; i < 30; i++) {
                data.push({
                    key: "Series-" + i,
                    y: Math.floor(Math.random() * 100)
                });
            }
            return data;
        }

        function defaultChart(containerId, data, labelType) {
            nv.addGraph(function () {
                var width = 300,
          height = 300;

                var chart = nv.models.pieChart()
          .x(function (d) { return d.key })
          .y(function (d) { return d.y })
          .color(d3.scale.category10().range())
          .width(width)
          .height(height)
          .labelType(labelType)
          ;

                d3.select("#" + containerId + " svg")
            .datum(data)
          .transition().duration(1200)
            .attr('width', width)
            .attr('height', height)
            .call(chart);

                nv.utils.windowResize(chart.update);
                return chart;
            });
        }

如果您在視圖對象中擁有數據,則只需按以下方式對其進行訪問即可:

var ltv =  '@Model.ltv';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM