Asp.net 默认情况下显示的记录

Asp.net 默认情况下显示的记录,asp.net,asp.net-mvc,visual-studio-2010,c#-4.0,linq-to-sql,Asp.net,Asp.net Mvc,Visual Studio 2010,C# 4.0,Linq To Sql,我是MVC 3的新手,linq是sql的新手,我的代码运行得很好,除了一个问题,当我第一次浏览我的页面时,默认情况下会显示一些记录,为什么 在日期搜索等之后,所有内容都会按照我的需要正确显示,但有一个问题是,默认情况下所有记录都会显示,并且下面的文本也会显示“提交”按钮 代码: public ActionResult ShowCalTextBox(字符串DateFrom,字符串DateTo) { 如果(DateFrom!=“”&DateTo=“”) { IEnumerable EmpRec_D

我是MVC 3的新手,linq是sql的新手,我的代码运行得很好,除了一个问题,当我第一次浏览我的页面时,默认情况下会显示一些记录,为什么

在日期搜索等之后,所有内容都会按照我的需要正确显示,但有一个问题是,默认情况下所有记录都会显示,并且下面的文本也会显示“提交”按钮

代码:

public ActionResult ShowCalTextBox(字符串DateFrom,字符串DateTo)
{
如果(DateFrom!=“”&DateTo=“”)
{
IEnumerable EmpRec_DateFrom=DataContext.GetEmpRec_Date(DateFrom,null.ToList();
ViewBag.Dates=“记录”+“”+DateFrom;
返回视图(EmpRec_DateFrom);
}
else if(DateFrom==“”&&DateTo!=“”)
{
IEnumerable EmpRec_DateTo=DataContext.GetEmpRec_Date(null,DateTo).ToList();
ViewBag.Dates=“记录”+“”+DateTo;
返回视图(EmpRec_DateTo);
}
else if(DateFrom!=“”&&DateTo!=“”)
{
IEnumerable EmpRec_ByDate=DataContext.GetEmpRec_Date(DateFrom,DateTo).ToList();
ViewBag.Dates=“记录从“+”+DateFrom++”到“+”+DateTo;
返回视图(EmpRec_ByDate);
}
else if(DateFrom==“”&DateTo==“”)
{
IEnumerable EmpRec_Default=DataContext.GetEmpRec_Date(null,null).ToList();
ViewBag.Dates=“无日期选择”;
返回视图(EmpRec_默认值);
}
返回视图();
}
视图:

@{
ViewBag.Title=“ShowCalTextBox”;
}
按日期搜索
@使用EmployeeAttention_应用程序模型
@使用(Html.BeginForm(“ShowCalTextBox”、“Home”、FormMethod.Get))
{
从…起
到


提交 } @查看包。日期
@{ var grid=新的WebGrid(ViewData.Model); } @grid.GetHtml()
首次获取操作将使DateFrom和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);
    }

为什么会被处决?我清楚地提到了not等于null,那么为什么它会在null的情况下执行?@evirising,您只检查字符串是否为空(!=”),您也需要检查null。sie不工作,尝试了您的代码,您能指出正确的方法吗?试试这个-如果(!string.IsNullOrWhiteSpace(DateFrom)&&!string.IsNullOrWhiteSpace(DateTo)),我忘了包括在内!对于第二个条件。我更新了我的答案。您可能需要在var grid=new WebGrid(ViewData.Model);,因为在GET情况下,您将只返回View();而且没有模型数据。所以我认为这是在抱怨。或者只需在控制器操作中启动一个模型并将其设置为null,然后在webgrid绑定时检查null。
@{
    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>
    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);
    }
if (!String.IsNullOrWhiteSpace(DateFrom) && !String.IsNullOrWhiteSpace(DateTo))