Я был застрял от раздражающей проблемы в моем коде, но решил, но смутил меня. Я использую DATE FROM
---- DATE TO
Ящики, чтобы выбрать диапазон дат для отображения сотрудников между этими датами в диапазоне WEBGRID
, но проблема заключалась в том, что на первом дисплее оно отображается точно в соответствии с этими диапазонами дат, но когда я делаю разбивку на страницы (на странице 2, 3 , 4 ....), то он выбрал всех сотрудников записи за каждую дату, потому что я установил условие IF, как если бы, если DatFrom
и TO
пустые, тогда выберите все результаты, как я упомянул в блоке IF
. Все это было связано с FORMMETHOD.POST
, когда я написал FORMMETHOD.GET
, тогда он начал работать правильно, ПОЧЕМУ?Получите работу, но пост не работает
так как правильно его реализовать?
public ActionResult ShowCalTextBox(String DateFrom, String DateTo)
{
if (DateFrom != "" && DateTo == "")
{
IEnumerable<GetEmpRec_DateResult> EmpRec_DateFrom = DataContext.GetEmpRec_Date(DateFrom, null).ToList();
ViewBag.Dates = "Records for"+" "+ DateFrom ;
return View(EmpRec_DateFrom);
}
else if (DateFrom == "" && DateTo != "")
{
IEnumerable<GetEmpRec_DateResult> EmpRec_DateTo = DataContext.GetEmpRec_Date(null, DateTo).ToList();
ViewBag.Dates = "Records for" + " " + DateTo;
return View(EmpRec_DateTo);
}
else if (DateFrom != "" && DateTo != "")
{
IEnumerable<GetEmpRec_DateResult> EmpRec_ByDate = DataContext.GetEmpRec_Date(DateFrom, DateTo).ToList();
ViewBag.Dates = "Records from" + " " + DateFrom +" "+"to"+" "+DateTo;
return View(EmpRec_ByDate);
}
else if (DateFrom == "" && DateTo == "")
{
IEnumerable<GetEmpRec_DateResult> EmpRec_Default = DataContext.GetEmpRec_Date(null, null).ToList();
ViewBag.Dates = "No date selection";
return View(EmpRec_Default);
}
return View();
}
public ActionResult About()
{
return View();
}
ВИД:
@using EmployeeAttendance_app.Models
<div>
@using (Html.BeginForm("ShowCalTextBox", "Home", FormMethod.Post))
{
<label id="lblFrom">From</label>
<input type="text" id="TxtBoxFrom" name="DateFrom" />
<label id="lblTo">To</label>
<input type="text" id="TxtBoxTo" name="DateTo" />
<br />
<br />
<button type="submit" id="btnSubmitDate" name="btnSubmit">Submit</button>
}
</div>
<div>
<h4>@ViewBag.Dates</h4>
<br />
@{
var grid = new WebGrid(ViewData.Model, rowsPerPage: 20, canPage: false);
}
<div id="AllEmpGrid_ByDate">
@grid.GetHtml(columns: grid.Columns(
grid.Column("EmplID", "Employee ID"),
grid.Column("EmplName","Employee Name"),
grid.Column("ShiftID", "Shift ID"),
grid.Column("DateVisited", "Date of Visit"),
grid.Column("InTime", "In Time"),
grid.Column("TimeOut", "Time Out"),
grid.Column("OverTime", "Over Time"),
grid.Column("TotalWorkingTime", "Total Working Time")
))
</div>
</div>
Я предполагаю, что у вас есть атрибуты '[HttpGet]' и '[HttpPost]' в соответствующих местах ...? –
Я не упоминал атрибуты явно, но когда я изменил метод FORM на GET, тогда он сработал, но теперь с сообщением, с сообщением о том, что он берет даты, выбранные, ВО ВРЕМЯ ПАРТИИ –
Я думаю, причина в том, что в значениях POST отправляются после тела, поэтому в сначала он выполняет IF, потому что значения пустые, но в GET он получает значения в первой попытке, потому что отправляет в заголовке? правильно ? –