【问题标题】:Best List view solution for asp.net mvc?asp.net mvc 的最佳列表视图解决方案?
【发布时间】:2011-02-02 14:29:20
【问题描述】:

观察 webforms 的 listview 开发很常见,但在 mvc 中不常见。另一方面,对于 mvc,我只找到显示表格数据的网格视图。

在您看来,asp.net mvc 的最佳列表视图解决方案是什么?

编辑: 好的,我终于找到了一种可能。 Kazi Manzur 使用 Telerik 控件编写了一个列表视图。 http://weblogs.asp.net/rashid/archive/2010/03/24/creating-rich-view-components-in-asp-net-mvc.aspx

【问题讨论】:

  • 你想做什么?使用 ASP.NET MVC 在某种类型的 ListView 中输出数据?
  • 嗨猎人...是的,我只能使用网格视图找到表格数据显示。我在互联网上搜索了很多,但没有成功

标签: asp.net-mvc listview uiview


【解决方案1】:

在 MVC 中,您通常只需创建一个循环并自己编写列表。

<ul>
@foreach (var message in Model.Messages)
{
    <li>@message</li>
} 
</ul>

这种编程模型为您提供了更多控制权并且更适合 MVC,因此我认为不需要像 webforms listview 这样的东西。

更新:使用 HtmlHelper 添加分页支持非常容易。见http://rickyrosario.com/blog/simple-htmlhelper-extension-for-paging-in-asp-net-mvc/ 也请查看帖子中链接的页面。

【讨论】:

  • 嗨,mikael,感谢您的支持。当然循环是一种方法,但我无法在列表视图中找到对其他区域的重要支持,例如集成和自定义分页,或多列和自定义排序作为示例..
  • 添加了一个关于分页的帖子的链接。不过,我还没有看到任何通用的解决方案排序
  • +1 从简单开始,不要从具有服务器端依赖项的功能密集组件开始。我非常喜欢简单、快速、轻量级的标记。
  • 从视图中访问模型不是一种不好的做法吗?
  • 从视图访问模型或视图模型并不是一个坏习惯。这就是您构建 MVC 应用程序的方式。控制器向视图提供模型,视图呈现该模型。视图的唯一职责是为某个模型渲染 HTML/GUI。
【解决方案2】:

请记住,ASP.NET MVC 将 HTML 的力量掌握在您手中。这开启了对各种开源小部件库的访问。

  • jQuery 用户界面
  • ExtJS(煎茶)
  • MooTools

您最终将负责创建 HTML,但其中很多库都提供了有关 HTML 外观的指导。

【讨论】:

  • 您好哈立德,感谢您的回答。是的,如果找到许多方法但目前没有一种方法包含准备在 mvc 上播放的列表视图解决方案。考虑到大多数网站都显示其产品的列表视图而不是表格数据样式,我感到非常惊讶。但我找不到像@listview 这样的东西。以同样的方式 webgrid 或类似的作品。我对此感到惊讶......
  • 你在使用 MVC3。 MVC 3 中有一个 Grid 帮助器,如果您不想编写大量 HTML,它可以让您不必编写大量 HTML。 MVCContrib 中也有一个。我的问题是它们在复杂的 UI 场景和分页路由场景之后崩溃。
  • 是的,我正在使用 mvc3 并检查了 webgrid,但它仍然是表格数据(标题、行、列)。 brgds
【解决方案3】:

jQuery Grid 插件很不错:http://www.trirand.com/blog/。它需要您自己编写表格,然后为您提供大量的分页/排序等功能......

MVCContrib 有一个非常漂亮的网格组件,可能更适合您来自网络表单背景的内容:http://mvccontrib.codeplex.com

微软也在开发一个网格 jQuery 插件,但我认为这还有很长的路要走。

【讨论】:

  • 嗨,伊利,非常感谢。根据我的经验,mvc 请求的所有网格解决方案都有一个标题、每列一个数据等... listview 为您提供了更多的自定义可能性,我在该区域找不到 mvc 的即插即用解决方案...
  • 抱歉,误会了,还以为您在寻找网格。 jQuery UI 库可能会有所帮助:jqueryui.com
【解决方案4】:

我看到的使用ListView的例子也加在jQuery中Tablesorter pluginThis post 展示了一个使用 jQuery 获得排序和分页支持的示例。

这是另一个使用 jQuery Tablesorter 插件显示 Listview 用户的帖子:http://beckelman.net/post/2008/10/16/Client-Side-ASPNET-ListView-Sorting-via-jQuery-TableSorter-Plugin-Demo.aspx

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多