我知道有些人建议使用JQuery或其他Javascript库。我希望使用常见的gridview或类似的。只是让你知道这是我的学习阶段,因此对于高级用户来说这可能是一个非常基本的问题。
答案 0 :(得分:3)
你不能(或者至少不应该,如果它甚至可能)使用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的不同重载。)
当你构建它时,你将更好地理解客户端渲染真实(或应该是)的简单程度,并且发现自己通常更多地使用HTML,而不是通常在WebForms中实现。继续沿着这条路走下去,你会发现它变得更容易使用一些非常强大的客户端插件(桌面上有一些 ton 的jQuery插件,很多例如)。通过AJAX调用(在MVC中编写服务器端很简单)或者只是在初始页面加载和分页/排序/过滤客户端中呈现所有数据,分页,排序等内容变得更加清晰
答案 1 :(得分:2)
您可能想看一下这个问题:grid controls for ASP.NET MVC?
它被视为对建议的请求没有建设性,但是肯定有很多数据网格选项可供您查看。
但简而言之,ASP.NET MVC并没有真正分享WebForms拖放复杂组件的设计理念 - 它的理念更倾向于“我确切地知道我在页面上想要什么,现在我需要实现它” 。如果那不是您所追求的,那么您最好坚持使用WebForms。
答案 2 :(得分:1)
向用户显示信息或从他/她收集数据的HTML元素可以分类为简单和复杂;像TextBox,ComboBox等简单元素在ASP.NET MVC中有HtmlHelper,因此开发人员为GridView等复杂元素寻找HtmlHelpers是合理的。它很复杂,因为它应该有分页,过滤,分组等。在我上一个使用ASP.NET MVC的项目中,我需要使用其中一个,我找到了两个很棒的库:
它们都是开源且高效的,但我更喜欢第一个,因为它简单,设计精良且易于配置。