Asp.net mvc 如何在mvc contrib grid中绑定不带(编辑、删除、创建)的表

Asp.net mvc 如何在mvc contrib grid中绑定不带(编辑、删除、创建)的表,asp.net-mvc,asp.net-mvc-2,mvccontrib,Asp.net Mvc,Asp.net Mvc 2,Mvccontrib,我在MVC2.0中使用了mvccontrib网格 我只想在gridview中绑定一个表…到目前为止,我的编码是…我不知道它是对还是错 Homecontroller.cs: public ActionResult List(int? page) { using (ProductDataContext db = new ProductDataContext()) { ViewData["product"] = db.Products.ToList().AsPagina

我在MVC2.0中使用了mvccontrib网格 我只想在gridview中绑定一个表…到目前为止,我的编码是…我不知道它是对还是错

Homecontroller.cs:

public ActionResult List(int? page)
{
    using (ProductDataContext db = new ProductDataContext())
    {
        ViewData["product"] = db.Products.ToList().AsPagination(page ?? 1, 10);
        return View("product");
    }
}
我还为此创建了列表视图。。。。。。。 我应该在Index.aspx中写什么代码

到目前为止,我使用了这个编码,但它不起作用

<% Html.Grid((List<Product>)ViewData["product"])
    .Columns(column =>
        {
            column.For(c => c.CategoryID);
            column.For(c => c.SupplierID);

        }).Render(); 
 %>

{
列.For(c=>c.CategoryID);
column.For(c=>c.SupplierID);
}).Render();
%>
这表明没有可用的数据。或者有其他编码吗


我的问题是我想在mvccontrib网格中绑定表。

如果它显示没有可用数据,问题是
db.Products.ToList().AsPagination(第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);
        })
%>
这当然假设ProductsController中存在以下操作:

public ActionResult Edit(int id)
...
[HttpDelete]
public ActionResult Destroy(int id)

我还邀请您查看我写的一份说明这些概念的报告。

这是如何回答他的问题的?当然,使用强类型视图是一个好主意,但最终,您的视图和他的代码不是一样吗?如果您分配的不是产品列表,则两者都会崩溃。除此之外,您的代码有什么不同吗(我只是没有发现吗)?不同之处在于
Html.Grid((List)ViewData[“product”])
vs
Html.Grid(Model)
。使用ViewData很难看,需要强制转换,并且取决于控制器操作中使用的实际名称。您可以使用mvc contrib grid发送一些编辑和删除示例吗?请告诉我,我是新手。在我的示例中,是否需要jqueryNot使用任何javascript。
<%@ 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>
public ActionResult Edit(int id)
...
[HttpDelete]
public ActionResult Destroy(int id)