从 mvc 控制器获取剃刀视图 javascript 中的字符串 []

Get string[] in razor view javascript from mvc controller

我正在与 Chart.js 合作。我需要 -

labels : ["Jan","Feb","Mar","Apr","May","Jun","Jul"],

在我的控制器代码中我这样做了-

   string[] Labels = new string[tbl.Rows.Count];
   for (int i = tbl.Rows.Count-1; i >0 ; i--)
   {
       Labels[i] = Convert.ToDateTime(tbl.Rows[i][0]).ToString("MMM") ;
   }

   Labels[0]= Convert.ToDateTime(tbl.Rows[0][0]).ToString("MMM") ;
   ViewBag.ChartLabel = Labels;

到目前为止一切都很好。

当我想在 razor 页面中使用该值时出现问题。

<script>
   labels : [], //How can i use ViewBag.ChartLabel here?
</script>

最简单的方法是将值插入数组。

<script>
var labels = [];
@foreach(var label in ViewBag.ChartLabel)
{
    <text>
        labels.push('@label');
    </text>
}
</script>

你可以在这里找到更多ways to convert,我认为它是最好的

var labels = @Html.Raw(Json.Encode(ViewBag.ChartLabel));