У меня есть контроллер с методом, который возвращает результат, когда я выполняю отладку, я получаю DenyAnyGet на JsonRequestBehavior. Есть идеи, что может быть проблемой? Мне нужна помощь, приятели. Метод GetData использует SortByColumnWithOrder ниже, и, возможно, я что-то упускаю и исправляю свою таблицу, чтобы данные могли фильтровать не нуль. Как я и думал раньше, это было причиной, но, получив DenyGet, я немного растерялся.
public ActionResult GetData()
{
//Server side Parameter.
JsonResult result = new JsonResult();
try
{
// Initilization
string search = Request.Form.GetValues("search[value]")[0];
// string draw = Request.Form.GetValues("draw")[0];
string order = Request.Form.GetValues("order[0][column]")[0];
string orderDir = Request.Form.GetValues("order[0][dir]")[0];
int startRec = Convert.ToInt32(Request.Form.GetValues("start")[0]);
int pageSize = Convert.ToInt32(Request.Form.GetValues("length")[0]);
// Loading.
List<EventsManagementTb> data = this.LoadData();
// Total record count.
int totalRecords = data.Count;
// Verification.
if (!string.IsNullOrEmpty(search) && !string.IsNullOrWhiteSpace(search))
{
// Apply search
data = data.Where(l=>l.TrainingType.ToLower().Contains(search.ToLower())
|| l.TrainingDescription.ToLower().Contains(search.ToLower())
|| l.Price.ToString().ToLower().Contains(search.ToLower())
|| l.Venue.ToLower().Contains(search.ToLower())
|| l.Facilitator.ToLower().Contains(search.ToLower())
|| l.WhoAttend.ToLower().Contains(search.ToLower())
|| l.RSVP.ToLower().Contains(search.ToLower())).ToList();
}
// Sorting
data = this.SortByColumnWithOrder(order, orderDir, data);
// Filter record data.
int recFilter = data.Count;
// Apply pagination.
data = data.Skip(startRec).Take(pageSize).ToList();
result = this.Json(new { draw = Request["draw"], recordsTotal = totalRecords, recordsFiltered = recFilter, data = data }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return result;// This gets hits here.
}
private List<EventsManagementTb> SortByColumnWithOrder(string order, string orderDir, List<EventsManagementTb> data)
{
// Initialization.
List<EventsManagementTb> lst = new List<EventsManagementTb>();
try
{
// Sorting
switch (order)
{
case "0":
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.TrainingType).ToList()
: data.OrderBy(l => l.TrainingType).ToList();
break;
case "1":
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.TrainingDescription).ToList()
: data.OrderBy(l => l.TrainingDescription).ToList();
break;
case "2":
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.Price).ToList()
: data.OrderBy(l => l.Price).ToList();
break;
case "3":
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.Venue).ToList()
: data.OrderBy(l => l.Venue).ToList();
break;
case "4":
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.Facilitator).ToList()
: data.OrderBy(l => l.Facilitator).ToList();
break;
case "5":
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.WhoAttend).ToList()
: data.OrderBy(l => l.WhoAttend).ToList();
break;
default:
lst = orderDir.Equals("DESC", StringComparison.CurrentCultureIgnoreCase) ? data.OrderByDescending(l => l.RSVP).ToList()
: data.OrderBy(l => l.RSVP).ToList();
break;
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return lst;
}
private List<EventsManagementTb> LoadData()
{
List<EventsManagementTb> lst = new List<EventsManagementTb>();
try
{
string line = string.Empty;
string srcFilePath = "content/files/EventsManagementTb.txt";
var rootPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
var fullPath = Path.Combine(rootPath, srcFilePath);
string filePath = new Uri(fullPath).LocalPath;
StreamReader sr = new StreamReader(new FileStream(filePath, FileMode.Open, FileAccess.Read));
//Read file
while ((line = sr.ReadLine()) != null)
{
EventsManagementTb tb = new EventsManagementTb();
string[] info = line.Split(',');
// Setting
tb.TrainingType = info[0].ToString();
tb.TrainingDescription = info[1].ToString();
tb.Price = Convert.ToInt32(info[2].ToString());
tb.Venue = info[3].ToString();
tb.Facilitator = info[4].ToString();
tb.WhoAttend = info[5].ToString();
tb.RSVP = info[6].ToString();
// Adding
lst.Add(tb);
}
sr.Dispose();
sr.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return lst;
}
}