我是MVC 3和linq到sql的新手,我的代码运行良好除了一个问题,当我第一次浏览我的页面时,默认显示一些记录,为什么?
在日期搜索等之后所有内容都正确显示,因为我需要一个问题,默认情况下显示所有记录,还有SUBMIT按钮下面的文字。
CODE:
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();
}
查看:
@{
ViewBag.Title = "ShowCalTextBox";
}
<h2>Search By Date</h2>
@using EmployeeAttendance_app.Models
<div>
@using (Html.BeginForm("ShowCalTextBox", "Home", FormMethod.Get))
{
<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);
}
@grid.GetHtml()
</div>
答案 0 :(得分:0)
第一次GET操作会使DateFrom和DateTo为NULL ,这样就会执行下面的代码 -
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);
}
最好为所有输入检查String.IsNullOrWhiteSpace()。如下所示 -
if (!String.IsNullOrWhiteSpace(DateFrom) && !String.IsNullOrWhiteSpace(DateTo))