循环浏览视图中的模型列表而不刷新

时间:2014-01-05 19:11:14

标签: c# asp.net-mvc

是否可以循环浏览模型列表并更新显示的数据而无需刷新页面或对服务器进行ajax调用?

情景:

型号:

public SomeModel 
{
    public int Id { get; set; }
    public string LinkName { get; set; }    
    public string ItemDecsiption { get; set; }
    public string Text { get; set; }
}

SomeModel对象列表是inicialized,填充数据并传递给控制器​​ActionResult中的View。我可以在视图中看到所有数据(我可以遍历各个模型并从SomeModel.LinkName属性创建列表。

<ul>
<%  foreach (SomeNamespace.SomeModel m in Model)
{ %>
    <li class="green"><%= m.LinkName %></li>
<%  } %>
</ul>

我想要做的是将页面内容部分分成两部分 - 一部分带有菜单(包括从模型中的每个LinkName创建的链接),第二部分包含带有描述和文本的块(对于当前在菜单中单击的id)。现在来了诀窍部分。我希望能够在单击菜单中的链接后更改第二个块中的显示数据,而无需刷新页面或对服务器进行ajax调用(因为我需要的所有数据已经​​可供客户端使用)。我能想到的唯一解决方案是为每个SomeModel对象生成隐藏块,然后编写jquery以在链接点击后操纵可见性。我想知道的是,是否有更优雅的方法来实现这一目标。

Project是用C#.NET 3.5 ASP.NET MVC 2.0编写的

3 个答案:

答案 0 :(得分:0)

根据您将生成的标记,隐藏的html块可能是最优雅的解决方案。例如,对于intance,如果通过简单地更改应该可见而不更改DOM的块类来切换可见性。

另一个选项是从Model准备json对象,并将其用作可见标记的数据源。但这可能会导致复杂性上升,这在大多数情况下都是不必要的。

答案 1 :(得分:0)

执行此操作的唯一方法是使用JavaScript来操作DOM。

答案 2 :(得分:0)

还有另一种方式 js中的1.var data=@Model.ToJson();没有ToJson功能,这就是你需要做的事情 2.只有一个内容块
3.单击菜单时,在数据中查找元素,并使用js

设置块内容