Asp.net mvc 如何在mvc contrib grid中绑定不带(编辑、删除、创建)的表
我在MVC2.0中使用了mvccontrib网格 我只想在gridview中绑定一个表…到目前为止,我的编码是…我不知道它是对还是错 Homecontroller.cs: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
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”])
vsHtml.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)