按日期在mvc 3中搜索过滤器

时间:2012-05-04 08:11:17

标签: asp.net-mvc asp.net-mvc-3

我正在尝试按日期制作搜索过滤器但我收到错误。  这是我的搜索方法:

   public ActionResult Search(DateTime StartDate,DateTime EndDate)
    {
        var result = (
            from r in context.Rooms
            from v in context.Reservations
                .Where(a =>a.Room_ID == r.RoomID
                    &&
                    !(
                        StartDate >= a.Data_Check_out ||
                        EndDate <= a.Data_Check_in
                    )
                    && a.Cancel == false
                ).DefaultIfEmpty()
            where v.ReservationID == null
            select r
            );
        return View(result);
    }

这是我的观点:

@model IEnumerable<MvcApplication4.Models.Room>

             @using (Html.BeginForm("Search", "Room", FormMethod.Get)) 
            { 
           @Html.TextBox("StartDate") 
           <input type="submit" value="Search" /> 
         @Html.TextBox("EndDate") 
         <input type="submit" value="Search" /> }
          @foreach (var x in Model)
          {
         <div class="item">
         <h1>@x.Room_Type.Room_Type1</h1>

        </div>}`

我收到以下错误:

  

参数字典包含'MvcApplication4中方法'System.Web.Mvc.ActionResult Search(System.DateTime,System.DateTime)'的非可空类型'System.DateTime'的参数'StartDate'的空条目。 Controllers.RoomController”。可选参数必须是引用类型,可空类型,或者声明为可选参数。   参数名称:参数`

1 个答案:

答案 0 :(得分:1)

您是否在url中传递参数?如果没有,那么最好在控制器中使用模型来获取值。此错误即将发生,因为控制器无法获取参数值。