【发布时间】:2013-07-25 23:17:18
【问题描述】:
我知道有些人建议使用 JQuery 或其他 Javascript 库。我希望使用常见的 gridview 或类似的。只是让您知道这是我的学习阶段,因此对于高级用户来说这可能是非常基本的问题。
【问题讨论】:
标签: c# asp.net-mvc
我知道有些人建议使用 JQuery 或其他 Javascript 库。我希望使用常见的 gridview 或类似的。只是让您知道这是我的学习阶段,因此对于高级用户来说这可能是非常基本的问题。
【问题讨论】:
标签: c# asp.net-mvc
你不能(或者至少不应该如果可能的话)在 MVC 中使用实际的 WebForms 控件。如果这对你来说确实是一种学习体验,那么你最好学习一些新的方法来做这些事情。
最简单的情况是,如果您只想显示一个数据表,那么您可以将该数据作为模型中的一个对象。例如,如果您想拥有一个 Customers 表,那么您的模型可能具有如下属性:
public IEnumerable<Customer> Customers { get; set; }
我们假设Customer 有一个Name 和一个Address 属性。然后在您看来,您只需循环遍历您的表格即可:
@foreach (var customer in Model.Customers)
{
<tr>
<td>@customer.Name</td>
<td>@customer.Address</td>
</tr>
}
从那里开始,您可以适当地构建更多功能。例如,可能表中的每条记录都需要有一个链接来“编辑”Customer。然后,您可能会使用客户的 ID 属性构建指向相应编辑操作的链接(再次,为了争论,假设那里有一个):
@foreach (var customer in Model.Customers)
{
<tr>
<td>@customer.Name</td>
<td>@customer.Address</td>
<td>@Html.ActionLink("Edit", "Customers", "Edit", new { id = customer.ID }, null)</td>
</tr>
}
(您可以使用不同的the ActionLink method 重载。)
当您构建它时,您将更好地了解客户端呈现它的实际(或应该)多么简单,并且发现自己通常比 WebForms 更实际地使用 HTML。沿着这条路继续前进,您会发现使用一些非常强大的客户端插件会变得更容易很多(有一个 ton 用于表格的 jQuery 插件,例如)。通过 AJAX 调用(在 MVC 中编写服务器端很简单)或仅通过在初始页面加载和分页/排序/过滤客户端中呈现所有数据,诸如分页、排序等事情变得更加清晰.
【讨论】:
DataTables 和DataSets 之类的东西。您会发现,当对象具有有意义的名称和编译器强制类型时,对象变得更容易支持。但是如果你只是使用DataTable,它的.Rows 属性在这种情况下就是Model.Customers。 Rows 是一个可以枚举的集合。
你不妨看看这个问题:grid controls for ASP.NET MVC?
由于作为建议请求没有建设性而被关闭,但肯定有很多推荐的数据网格选项可供您查看。
但简而言之,ASP.NET MVC 并没有真正分享 WebForms 拖放复杂组件的设计理念——它的理念更多地针对“我确切地知道我想要在我的页面上显示什么,现在我需要实现它” .如果这不是您所追求的,那么您最好坚持使用 WebForms。
【讨论】:
向用户显示信息或从他/她那里收集数据的 HTML 元素可以分为简单和复杂; TextBox、ComboBox等简单元素在ASP.NET MVC中有HtmlHelper,开发者为GridView等复杂元素寻找HtmlHelper是合理的;它很复杂,因为它应该有分页、过滤、分组等。在我上一个使用 ASP.NET MVC 的项目中,我需要使用其中一个,我发现了两个很棒的库:
它们都是开源且高效的,但我更喜欢第一个,因为它简单、设计良好且易于配置。
【讨论】: