0

Я новичок в MVC 3 и linq для sql, мой код работает хорошо, за исключением одной проблемы, когда я сначала просматриваю свою страницу, чем показывает некоторые записи по умолчанию, почему?Записи отображаются по умолчанию

enter image description here

после даты поиска и т.д. все вещи появляются правильно, как мне нужно, но одна проблема, что все записи появляются по умолчанию, а также текст ниже кнопку ВВЕСТИ.

КОД:

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

Первый раз ПОЛУЧИТЬ Операция будет делать DateFrom и DateTo будет NULLS, так что будет выполнять код ниже -

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.IsNullOrWhi teSpace() для всех входов. Как показано ниже -

if (!String.IsNullOrWhiteSpace(DateFrom) && !String.IsNullOrWhiteSpace(DateTo)) 
+0

Почему это было бы выполнено? я, очевидно, упомянул, что не равен нулю, так почему он будет выполнен в случае NULLS? –

+0

@Evilrising, вы проверяете только пустую строку (! = ""), Вам нужно также проверить нули. – ramiramilu

+0

Не работает sie, попробовал ваш код, не могли бы вы указать правильный путь? –

Смежные вопросы