ASP.NET MVC 5 - значение не может быть нулевым. Имя параметра: источник - PullRequest
1 голос
/ 08 июня 2019

Я попытался создать простое веб-приложение для отображения сетки с данными из базы данных .mdf. Однако, похоже, что я возвращаю «модель» (производную от «источника») как ноль.

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();
    }
}

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);
}

Это ошибка, которую я получаю после ее запуска: System.ArgumentNullException: «Значение не может быть нулевым. Имя параметра: источник '

[РЕДАКТИРОВАТЬ - Добавлен метод действия]

<code>
    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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...