2016-12-08 171 views
2

大家晚上好, 我家,任何人都可以帮助我与日期时间范围过滤器的观点部分。 这里是我的模型:通过日期时间范围筛选MVC 5

public class IndexVM 
{ 
    public DateTime? StartDate { get; set; } 
    public DateTime? EndDate { get; set; } 
    public virtual ICollection<Order> Orders { get; set; } 

} 

我使用视图模型显示,现在这里是我的控制器:

public ActionResult Index(DateTime? start, DateTime? end) 
    { 

     var orders = db.Orders 
      .Where(x => x.OrderStatus == 3 
      && x.ClosedAt > start 
      && x.ClosedAt < end) 
      .OrderByDescending(x => x.LastUpdateAt) 
      .ToList(); 

     IndexVM model = new IndexVM(); 
     model.StartDate = start; 
     model.EndDate = end; 
     model.Orders = orders; 
     return View(model); 
    } 

现在我有一些问题看法。

这是我的问题: 如何将开始日期和结束日期传递给控制器​​以获取具有定义属性的订单? 这是我的看法,我做错了什么?

@using (Html.BeginForm()) 
{ 
    <div class="form-horizontal"> 
     <div class="form-group form-group-sm"> 
      <div class="col-md-8"> 
       @Html.TextBoxFor(model => model.StartDate, "{0:MM/dd/yyyy}", new { @class = "date-picker form-control", @id = "start", @placeholder = "Start Date" }) 
      </div> 
     </div> 
     <div class="form-group form-group-sm"> 
      <div class="col-md-8"> 
       @Html.TextBoxFor(model => model.EndDate, "{0:MM/dd/yyyy}", new { @class = "date-picker form-control", @id = "end", @placeholder = "End Date" }) 
      </div> 
     </div> 
     <div class="form-group-sm"> 
      <div class="col-md-offset-2 col-md-10"> 
       <input type="submit" value="Save" class="btn btn-default" /> <span> </span> 
      </div> 
     </div> 
    </div> 
} 

回答

1

控制器

public ActionResult Index(DateTime? start, DateTime? end) 
    { 
    ViewBag.start = start; 
      ViewBag.end = end; 
     var orders = db.Orders 
      .Where(x => x.OrderStatus == 3 
      && x.ClosedAt > start 
      && x.ClosedAt < end) 
      .OrderByDescending(x => x.LastUpdateAt) 
      .ToList(); 


     return View(orders); 
    } 

查看

@using (Html.BeginForm()) 
{ 
    <div class="form-horizontal"> 
     <div class="form-group form-group-sm"> 
      <div class="col-md-8"> 
       @Html.TextBox("start", null, new { @class = "form-control datepicker" }) 
      </div> 
     </div> 
     <div class="form-group form-group-sm"> 
      <div class="col-md-8"> 
       @Html.TextBox("end", null, new { @class = "form-control datepicker" }) 
      </div> 
     </div> 
     <div class="form-group-sm"> 
      <div class="col-md-offset-2 col-md-10"> 
       <input type="submit" value="Save" class="btn btn-default" /> <span> </span> 
      </div> 
     </div> 
    </div> 
} 
+0

KreminT,非常感谢它的工作原理。 –

+0

这对我不起作用。它只提供2个文本输入框。你可以更新一个完整的解决方案吗? – Andre

+1

@Andre,请看这里http://jsbin.com/tajiw/1/edit?html,output – KreminT