Javascript 使用MVC通过Viewmodel属性传递Morris图表数据

Javascript 使用MVC通过Viewmodel属性传递Morris图表数据,javascript,c#,asp.net-mvc,morris.js,Javascript,C#,Asp.net Mvc,Morris.js,我正在基于数据库数据构建Morris图表,并使用Viewmodel传递到视图: 剃刀代码: @Html.HiddenFor(m => m.SurveyLastDaysChartData) HTML代码: <input id="SurveyLastDaysChartData" name="SurveyLastDaysChartData" type="hidden" value="[{"Date":"2016-07-18","Average":0},{"Date":"2016-07-1

我正在基于数据库数据构建Morris图表,并使用Viewmodel传递到视图:

剃刀代码:

@Html.HiddenFor(m => m.SurveyLastDaysChartData)
HTML代码:

<input id="SurveyLastDaysChartData" name="SurveyLastDaysChartData" type="hidden" value="[{"Date":"2016-07-18","Average":0},{"Date":"2016-07-17","Average":0},{"Date":"2016-07-16","Average":0},{"Date":"2016-07-15","Average":4.125},{"Date":"2016-07-14","Average":0},{"Date":"2016-07-13","Average":0},{"Date":"2016-07-12","Average":0}]">
我希望将图表数据保留在Viewmodel中,并避免在视图中使用Javascript,我如何才能做到这一点


谢谢。

在您的视图中,序列化属性并设置为javascript变量。这将是JSON

<script>
var chartData = @Html.Raw(Newtonsoft.Json.JsonConvert
                                        .SerializeObject(Model.SurveyLastDaysChartData));
</script>

var chartData=@Html.Raw(Newtonsoft.Json.JsonConvert
.serialized对象(Model.SurveyLastDaysChartData));

现在,您可以在javascript代码中使用
chartData
变量。

在视图中,序列化属性并设置为javascript变量。这将是JSON

<script>
var chartData = @Html.Raw(Newtonsoft.Json.JsonConvert
                                        .SerializeObject(Model.SurveyLastDaysChartData));
</script>
data : @(Html.Raw(System.Web.Helpers.Json.Encode(Model.ListOfYouNeed)))

var chartData=@Html.Raw(Newtonsoft.Json.JsonConvert
.serialized对象(Model.SurveyLastDaysChartData));

现在,您可以在javascript代码中使用
chartData
变量。

在这种情况下,您需要传递模型数据。因此,您需要在razor视图中使用这一行(因为它使用的是C代码)。在这个用例中,拥有它是很好的。最后一件事,在控制器上序列化还是喜欢你的答案更好?model.SurveyLastDaysChartData=jsonSerializer.Serialize(chartData);您希望在客户端javascript变量中使用该变量。仪式那么你应该以你的观点去做。非常感谢你的帮助;)在这种情况下,需要传递模型数据。因此,您需要在razor视图中使用这一行(因为它使用的是C代码)。在这个用例中,拥有它是很好的。最后一件事,在控制器上序列化还是喜欢你的答案更好?model.SurveyLastDaysChartData=jsonSerializer.Serialize(chartData);您希望在客户端javascript变量中使用该变量。仪式那么你应该以你的观点去做。非常感谢你的帮助;)嗨,谢谢!对不起,我已经检查了Shyju的答案是否正确,因为他先回答了。嗨,谢谢!对不起,我已经检查了Shyju的答案是否正确,因为他先回答了。
data : @(Html.Raw(System.Web.Helpers.Json.Encode(Model.ListOfYouNeed)))