[英]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.