Born to be proud
11/28
2016

js调用.net视图页model的问题

做项目用到折线图,简单看了下 Chart.js 的文档,Chart.js 采用 js 对图表进行赋值。后台 .net Controller 返回带有 model 参数的视图页面,网上查了下js获取 .net 视图页 model
的方法如下:

alert('@Model');    #输出对象类型
alert('@Model.strarr');    #输出字符串 System.String[]
alert('@Model.strarr[0]');    #输出strarr[0]的值

无法遍历Model中数组的值,无法采用变量 i 来拼接 ‘@Model.strarr[i]’

解决办法:

先将Model的值输出到页面的表格上,再用js取出表格的数据,赋值给折线图

主要代码

<tr>
    <td><button class="btn" style="background:black"></button> 20分钟 </td>
    @foreach (var s20 in Model.s20minAssessmentData)
    {
        <th name="s20">@s20</th>
    }
</tr>
<tr>

<script>
var ctx = document.getElementById("myChart").getContext("2d");
var pretime = document.getElementsByName("pre-time");
for (var i=0 ; i < pretime.length; i++) {
     data.labels.push(pretime[i].innerText);
}
chartLine = new Chart(ctx).Line(data);
</script>

附:js判断对象是否为空的三种方式

if   (typeOf(x)   ==   "undefined")
if   (typeOf(x)   !=   "object")
if(!x)