2016-12-08 169 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