繁体   English   中英

从javascript访问数据集中的每个元素

[英]access each element in a data set from javascript

我想从javascript访问数据集中的每个元素。 我想在我的JavaScript中执行以下操作。

for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
        var data = @Model.saVM.mapDetails;
        alert(data[i]);
}

但是我不断收到这个错误

未终止的模板文字

我尝试过的其他东西..

for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
        var data = @Model.saVM.mapDetails.ElementAt(i);

}

for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
        var data = @Model.saVM.mapDetails.ElementAt(@:i);

}

这就是为什么我需要这样做

我有一个MVC应用程序,它将Model中的数据绑定到html表中。 行和列的数量是可变的,具体取决于模型中的数据。

public class StudentAssessmentViewModel
{
    public StudentAssessmentViewModel() { }
    public List<ShortResult> results { get; set; }        
    public List<ShortStudent> students {get; set;}
    public List<MapDetail> mapDetails { get; set; }
    public List<ResultType> resultTypes { get; set; }        
    public List<ShortResult> calculatedResults { get; set; }
    public List<Mean> means { get; set; } 
}

现在在此表中,当我创建一个td时,我检查Model.results(与当前学生(在行中)和当前Header(在列中)匹配)中是否存在要放入当前td中的值和颜色,如果是,则放置值和颜色,否则向前移动,即创建下一个td。

然后,我将此表转换为Kendo网格,该网格保留了td值,但删除了所有颜色。

所以现在我必须分别解析结果列表,并再次为kendogrid中的每个单元格分配颜色。

我举个简单的例子,希望对您有所帮助

视图

      @model  IEnumerable<JqueryAjaxClientProject.Models.Details> 


@{
    Layout = null;
}

<!DOCTYPE HTML>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>modalPassTOjavascirpt</title>
</head>
<body>
    <div>
    </div>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script>
        $(document).ready(function () {

            var model = '@Html.Raw(Json.Encode(Model)))'
            console.log(model)
            if (model != null) {

                //loop over the model
            }
            });

    </script>

</body>

控制器:

  public List<Details> getCollection () {

        List<Details> obe = new  List<Details>();
        for (int i = 0; i < 10; i++)
        {
            Details obj = new Details();
            obj.Id = 1;
            obj.name = "nae";

            obe.Add(obj);
        }

        return obe;
    }

    public ActionResult modalPassTOjavascirpt() {

        var get = getCollection();

        return View(get);
    }

产量 在此处输入图片说明

更新

JS /脚本

  var model = '@Html.Raw(Json.Encode(Model))'
           //   console.log(model)

            if (model != null) {

                $.each(JSON.parse(model), function (i, data) {

                    var row = data;
                    console.log(row);
                });

            }
            });

输出值 在此处输入图片说明

要循环播放,您需要执行以下操作:

<script>
var model = @Html.Raw(Json.Encode(@Model.saVM.mapDetails));
$(model).each(function (index, item) {
        console.log(item.MapId);
        console.log(item.MapName});
</script>

假设您在mapDetails中具有MapId和MapName属性。 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM