如何在mvc视图中一次显示一条json对象的记录?

如何在mvc视图中一次显示一条json对象的记录?,json,asp.net-mvc-3,razor,traversal,Json,Asp.net Mvc 3,Razor,Traversal,我的场景是,我将一个值列表作为json从controller返回到view,然后只想显示表单上的第一条记录&按下向下箭头键后,想显示第二条记录&依此类推 是否可以在客户端逐个遍历整个json列表,或者我每次都必须通过ajax通过按键事件从服务器返回一条记录?在我看来,您有很多选项,一种可能是返回结果,在视图中生成html元素,并隐藏除第一条之外的所有记录(使用CSS)。比如(只是给你一个想法): 话虽如此,如果您不想加载所有项目,您可以仅获取第一个项目(同时保持计数),并通过ajax调用获取每个

我的场景是,我将一个值列表作为json从controller返回到view,然后只想显示表单上的第一条记录&按下向下箭头键后,想显示第二条记录&依此类推


是否可以在客户端逐个遍历整个json列表,或者我每次都必须通过ajax通过按键事件从服务器返回一条记录?

在我看来,您有很多选项,一种可能是返回结果,在视图中生成html元素,并隐藏除第一条之外的所有记录(使用CSS)。比如(只是给你一个想法):


话虽如此,如果您不想加载所有项目,您可以仅获取第一个项目(同时保持计数),并通过ajax调用获取每个后续项目。

在性能说明中,哪一个更好?每次发出ajax请求还是在客户端遍历列表?由于我正在开发一个业务erp解决方案,这个列表可能会非常庞大。@Jain加载一个不需要的大型结果集是一种浪费,因此,采用AJAX方式并一次获取1个结果是正确的,您甚至可以在服务器端进行缓存,从而获得更好的性能。我个人会选择一种方法,获取10个(或可接受的数量)结果,然后显示它们,通过AJAX再加载10个。。。等
@model List<string>
@for (int i = 0; i < Model.Count; i++)
{
    <div class="@((i == 0) ? "name-highlighted" : "name")">@Model[i]</div>
}
.name {
    display: none;
}

.name-highlighted {
    /* You get the idea */
}