我知道有些人建议使用 JQuery 或其他 Javascript 库。我希望使用常见的 gridview 或类似的。只是让您知道这是我的学习阶段,因此对于高级用户来说这可能是非常基本的问题。
3 回答
您不能(或者至少不应该)在 MVC 中使用实际的 WebForms 控件。如果这对您来说确实是一次学习经历,那么您最好学习一些做这些事情的新方法。
在最简单的情况下,如果您只想显示一个数据表,那么您可以将该数据作为模型中的一个对象。例如,如果您想要一个表格,Customers
那么您的模型可能具有如下属性:
public IEnumerable<Customer> Customers { get; set; }
我们假设 aCustomer
有 aName
和一个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>
}
(您可以使用不同的ActionLink
方法重载。)
当您构建它时,您将更好地了解客户端渲染的实际(或应该)是多么简单,并且发现自己通常比 WebForms 中的 HTML 更加亲力亲为。沿着这条路继续下去,您会发现使用一些非常强大的客户端插件变得容易得多(例如,有大量的jQuery 表格插件)。通过 AJAX 调用(在 MVC 中编写服务器端很简单)或仅通过在初始页面加载和分页/排序/过滤客户端中呈现所有数据,诸如分页、排序等事情变得更加清晰.
您可能想看看这个问题:ASP.NET MVC 的网格控件?
由于作为建议请求没有建设性,它被关闭,但肯定有很多推荐的数据网格选项,您可能想查看。
但简而言之,ASP.NET MVC 并没有真正分享 WebForms 拖放复杂组件的设计理念——它的理念更多地针对“我确切地知道我想要在我的页面上显示什么,现在我需要实现它”。如果这不是您所追求的,那么您最好坚持使用 WebForms。
向用户显示信息或从他/她那里收集数据的 HTML 元素可以分为简单和复杂;TextBox、ComboBox等简单元素在ASP.NET MVC中有HtmlHelper,开发者为GridView等复杂元素寻找HtmlHelper是合理的;它很复杂,因为它应该有分页、过滤、分组等。在我上一个使用 ASP.NET MVC 的项目中,我需要使用其中一个,我发现了两个很棒的库:
它们都是开源且高效的,但我更喜欢第一个,因为它简单、设计良好且易于配置。