Если он показывает, что данных нет, проблема в том, что db.Products.ToList().AsPagination(page ?? 1, 10)
просто не возвращает элементов (пустая коллекция). Относительно того, почему это происходит, невозможно сказать по предоставленной вами информации. Во многом это будет зависеть от реализации этого ProductDataContext
и доступных данных в вашем хранилище данных.
При этом я бы порекомендовал вам использовать строго типизированные представления:
public ActionResult List(int? page)
{
using (ProductDataContext db = new ProductDataContext())
{
var products = db.Products.ToList().AsPagination(page ?? 1, 10);
return View("product", products);
}
}
И поэтому ваше мнение просто становится:
<%@ Page
Language="C#"
Inherits="System.Web.Mvc.ViewPage<IEnumerable<AppName.Models.Product>>" %>
<%@ Import Namespace="AppName.Models" %>
<%= Html.Grid<Product>(Model)
.Columns(column =>
{
column.For(c => c.CategoryID);
column.For(c => c.SupplierID);
})
%>
Обратите внимание, как представление строго типизировано для коллекции продуктов.
Простой, простой, строго типизированный.
UPDATE:
В соответствии с запросом в разделе комментариев приведен пример добавления Изменить и Удалить ссылки на каждую строку:
<%= Html.Grid<Product>(Model)
.Columns(column =>
{
column.For("TableLinks").Named("");
column.For(c => c.CategoryID);
column.For(c => c.SupplierID);
})
%>
и TableLinks.ascx
:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<AppName.Models.Product>" %>
<%@ Import Namespace="AppName.Models" %>
<td>
<%: Html.ActionLink<ProductsController>(c => c.Edit(Model.Id), "Edit") %> |
<% using (Html.BeginForm<ProductsController>(c => c.Destroy(Model.Id))) { %>
<%: Html.HttpMethodOverride(HttpVerbs.Delete) %>
<input type="submit" value="Delete" />
<% } %>
</td>
Что подразумевает, конечно, что в вашем ProductsController присутствуют следующие действия:
public ActionResult Edit(int id)
...
[HttpDelete]
public ActionResult Destroy(int id)
Я также приглашаю вас ознакомиться с примером приложения MVC Я написал, который иллюстрирует эти концепции.