Microsoft.CSharp.RuntimeBinder.RuntimeBinderException错误

时间:2014-10-09 00:12:04

标签: c# .net linq

我已经被困在这个错误上差不多一天了,而且我不明白为什么我会得到它。

错误:

  

类型的例外   ' Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'发生在   System.Core.dll但未在用户代码中处理

其他信息:最佳重载方法匹配' System.Web.Helpers.WebGrid.Bind

控制器:

 var data = (from brand in db.Brand
             from division in db.Division
             from supplier in db.Supplier
             where brand.BrandID == division.DivisionID
             where product.SupplierID == supplier.SupplierID
             select new ModelGrid
             {
                   BrandID = brand.BrandID,
                   BrandName = brand.BrandName,
                   DivisionName = division.DivisionName,
                   CompanyName = supplier.CompanyName,
                   ContactName = supplier.ContactName,
                   Country = supplier.Country
             }).ToList();

  return View(data);

查看:

WebGrid grid = new WebGrid(Model);
grid.Bind(Model, rowCount: ViewBag.count, autoSortAndPage: false);

 @grid.GetHtml(
    columns: grid.Columns(
        grid.Column("BrandID", "Brand ID", canSort: true),
        grid.Column("BrandName", "Brand Name", canSort: true),
        grid.Column("DivisionName", "Division Name", canSort: true),
        grid.Column("CompanyName", "Company Name", canSort: true),
        grid.Column("ContactName", "Contact Name", canSort: true),
        grid.Column("Country", "Country", canSort: true)
    )
)

和型号:

public class ModelGrid
{
    public int BrandID { get; set; }
    public string BrandName { get; set; }
    public string DivisionName { get; set; }
    public string CompanyName { get; set; }
    public string ContactName { get; set; }
    public string Country { get; set; }
}

从我能找到的内容来看,当使用匿名类型时,你似乎得到了这个错误,但是我想我已经避免了这个。我现在还在学习,所以非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

试试这个,看它是否有效

grid.Bind(Model, rowCount: (int)ViewBag.count, autoSortAndPage: false);

我感觉它失败了,因为ViewBag是一个动态类型,并且它不知道Count是一个int而Bind方法需要一个int for rowCount。