记录默认显示

时间:2014-01-28 07:56:40

标签: asp.net asp.net-mvc visual-studio-2010 c#-4.0 linq-to-sql

我是MVC 3和linq到sql的新手,我的代码运行良好除了一个问题,当我第一次浏览我的页面时,默认显示一些记录,为什么?

enter image description here

在日期搜索等之后所有内容都正确显示,因为我需要一个问题,默认情况下显示所有记录,还有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>

1 个答案:

答案 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))