asp.net mvc - 如何在javascript中循环遍历模型数据

Gra*_*ell 2 javascript asp.net-mvc

我想在javascript中将数据添加到列表框中,但是字符串构建语法让我感到难过:

var yourobject = '<%=Model.Inserts['+ i + ']%>';

导致错误:"字符文字中的字符过多"

所有代码:

var mlb = cm.createListBox('mylistbox', {
                        title: 'My list box',
                        onselect: function(v) {
                                tinyMCE.activeEditor.windowManager.alert('Value selected:' + v);
                            }
                        });


                        for (var i = 0; i < '<%=Model.Inserts.Count() %>'; i++) {
                            var yourobject = '<%=Model.Inserts['+ i + ']%>';
                            mlb.add(yourobject, i);
                        }
Run Code Online (Sandbox Code Playgroud)

Doo*_*ght 11

我知道这是一个老问题,但答案已经过时,因为现在可能.

这可以在razor语法中使用@:行的开头在javascript中运行(从c#中转义).

Model.xValuesList<String>从控制器传来的.并且yValuesList<int>

这是一个如何在javascript函数中循环模型数据的快速示例.

<script type="text/javascript">
   function drawChart() {

        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', '@Model.LabelName');
        data.addColumn('number', '@Model.ValueName');

       @for(int i = 0; i < Model.xValues.Count; i ++)
       {
           @: data.addRow(['@Model.xValues.ElementAt(i)', @Model.yValues.ElementAt(i)]);
       }

       ... etc

</script>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您提供非常优雅的解决方案.我甚至可以做这样的事情:https://gist.github.com/saad749/db606466725cff8f96b5a766da4a4dad (2认同)