Я попытался создать простое веб-приложение для отображения сетки с данными из базы данных .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();
}