ВЫПУСК
Я пытаюсь отправить форму asp.net mvc и получаю следующую ошибку.Когда страница изначально загружается, она успешно выполняет метод GridData.Если я нажимаю кнопку «Отправить» в представлении ниже, я получаю следующую ошибку:
ОШИБКА
Словарь параметров содержит пустую запись для параметра 'page' of nonОбнуляемый тип «System.Int32» для метода «System.Web.Mvc.JsonResult GridData (System.String, System.String, Int32, Int32)» в «HunterEdge.Web.Controllers.DataController».Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры
ЧАСТИЧНЫЙ ПРОСМОТР: Это данные представления, которые я пытаюсь передать
@model HunterEdge.Web.Models.HarvestDataFilter
@using (Html.BeginForm("GridData", "Data"))
{
<div style=" width:300px; height:550px; float:left">
html removed for brevity
<input type="submit" value="Search" style=" margin-left:110px" />
</div>
}
МЕТОД ДЕЙСТВИЯ КОНТРОЛЛЕРА, КОТОРЫЙ Я ПЫТАЮСЯПОЛУЧИТЬ ДАННЫЕ ФОРМЫ
public JsonResult GridData(string sidx, string sord, int page, int rows, HarvestDataFilter filter)
{
var results = (from a in db.t_harvest_statistics_elk
where a.year == "2008" && a.unit_number == 1
orderby a.id
select new { a.id, a.year, a.unit_number, a.total_hunters, a.bulls, a.cows }).ToList();
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = results.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
var pageResults = results.Skip(pageIndex * pageSize).Take(pageSize);
var jsonData = new
{
total = totalPages,
page,
records = totalRecords,
rows = (
from pageResult in pageResults
select new
{
id = pageResult.id,
cell = new[] {
pageResult.year.ToString(),
"Add",
pageResult.unit_number.ToString(),
pageResult.total_hunters.ToString(),
pageResult.bulls.ToString(),
"add",
pageResult.cows.ToString(),
"add",
"add",
"add"
}
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);