C# ASP.NET MVC 5-值不能为空。参数名称:源

C# ASP.NET MVC 5-值不能为空。参数名称:源,c#,html,asp.net-mvc,asp.net-mvc-5,C#,Html,Asp.net Mvc,Asp.net Mvc 5,我试图制作一个简单的web应用程序,用.mdf数据库中的数据显示网格。但是,我似乎将“model”(从“source”派生)返回为null HomeController.cs: public List<BooksTable> GetBooks(string search, string sort, string sortdir, int skip, int pageSize, out int totalRecord){ using(MyDatabaseEntities dc

我试图制作一个简单的web应用程序,用.mdf数据库中的数据显示网格。但是,我似乎将“model”(从“source”派生)返回为null

HomeController.cs:

public List<BooksTable> GetBooks(string search, string sort, string sortdir, int skip, int pageSize, out int totalRecord){
    using(MyDatabaseEntities dc = new MyDatabaseEntities()){
        var v = (from a in dc.BooksTables
            where 
                a.Author.Contains(search) || 
                a.Title.Contains(search) ||
                a.Year.ToString().Contains(search)
           select a);
        totalRecord = v.Count();
        v = v.OrderBy(sort + " " + sortdir);
        if(pageSize > 0)
            v = v.Skip(skip).Take(pageSize);
        return v.ToList();
    }
}
public List getbook(字符串搜索、字符串排序、字符串排序、int skip、int pageSize、out int totalRecord){
使用(MyDatabaseEntities dc=new MyDatabaseEntities()){
var v=(从dc.BooksTables中的a开始)
哪里
a、 Author.Contains(搜索)|
a、 Title.Contains(搜索)||
a、 Year.ToString()包含(搜索)
选择a);
totalRecord=v.Count();
v=v.OrderBy(排序+“”+sortdir);
如果(页面大小>0)
v=v.Skip(Skip).Take(pageSize);
return v.ToList();
}
}
Index.cshtml:

@model List<LibraryP3.BooksTable>

@{
    Layout = null;
    var grid = new WebGrid(canPage: true, rowsPerPage: 10);
    grid.Bind(source: Model, rowCount: ViewBag.TotalRows, autoSortAndPage:false);
}
@型号列表
@{
布局=空;
var grid=new-WebGrid(canPage:true,rowsPerPage:10);
Bind(源:Model,行数:ViewBag.TotalRows,autoSortAndPage:false);
}
这是我在运行它之后得到的错误:System.ArgumentNullException:'值不能为null。参数名称:源'

[编辑-添加操作方法]


公共操作结果索引(int page=1,string sort=“Author”,string sortdir=“asc”,string search=”“){
int pageSize=10;
int totalRecord=0;
如果(第<1页)
page=1;
int skip=(页面*页面大小)-页面大小;
var数据=GetBooks(搜索、排序、排序、跳过、页面大小、out totalRecord);
ViewBag.TotalRows=totalRecord;
ViewBag.search=搜索;
返回视图();
}

我们在这里缺少了Action方法,这就是所有情况发生的地方。看起来v变量为null。您需要逐步检查控制器中的代码,以了解v变量为null的原因@亨克洛特曼刚刚加了一句。我是否缺少列表中要设置为“model”的绑定?我们缺少这里的Action方法,这就是它发生的地方。看起来v变量为null。您需要逐步检查控制器中的代码,以了解v变量为null的原因@亨克洛特曼刚刚加了一句。我是否遗漏了将列表设置为“模型”的绑定?

    public ActionResult Index(int page = 1, string sort = "Author", string sortdir = "asc", string search = ""){
        int pageSize = 10;
        int totalRecord = 0;
        if (page < 1)
            page = 1;
        int skip = (page * pageSize) - pageSize;
        var data = GetBooks(search, sort, sortdir, skip, pageSize, out totalRecord);
        ViewBag.TotalRows = totalRecord;
        ViewBag.search = search;
        return View();
    }