2013-04-26 49 views
0

很抱歉,如果我的問題聽起來不錯,但我是一個真正的JavaScript初學者。我有2個參數「startdate」和「enddate」。我想通過它通過這個JavaScript來控制器:MVC通過日期範圍控制器使用javascript

查看:(更新)

<div class="inventoryTypeList"> 
<p> 
    <label for="start">From:</label> 
     @(Html.Kendo().DatePicker() 
       .Name("from") 
       .Events(e => e.Change("startChange")) 
     ) 

     <label for="end">To:</label> 
     @(Html.Kendo().DatePicker() 
       .Name("to") 
       .Events(e => e.Change("endChange")) 
     ) 
</p> 
    <button class="k-button" id="showGrid">Search</button> 
</div> 

<script> 

    function startChange() { 
     var endPicker = $("#to").data("kendoDatePicker"), 
      startDate = this.value(); 

     if (startDate) { 
      startDate = new Date(startDate); 
      startDate.setDate(startDate.getDate() + 1); 
      endPicker.min(startDate); 
     } 
    } 

    function endChange() { 
     var startPicker = $("#from").data("kendoDatePicker"), 
      endDate = this.value(); 

     if (endDate) { 
      endDate = new Date(endDate); 
      endDate.setDate(endDate.getDate() - 1); 
      startPicker.max(endDate); 
     } 
    } 

    $(function() { 

     $("#showGrid").click(function() { 
      $.ajax({ 
       url: '@Url.Action("PastTransactionsPartial", "InventoryTransactions")', 
       type: 'POST', 
       contentType: 'application/json; charset=utf-8', 
       cache: false, 
       data: JSON.stringify({ 
        dateFrom: $('#from').val(), 
        dateTo: $('#to').val(), 
       }), 
       success: function (result) { 
        $('#divPastTransactions').replaceWith(result); 
       }, 
       error: function() { alert("Please specify from and to dates"); } 
      }); 
     }); 
    }); 

</script> 

<div id="divPastTransactions" ></div> 

控制器:(更新)

public ActionResult PastTransactionsPartial(DateTime dateFrom, DateTime dateTo) 
    { 
     var inventorytransactions = db.InventoryTransactions.Include(i => i.InventoryTransactionType).Include(i => i.InventoryType).Include(i => i.Supplier).Where(i => i.InventoryTransactionDate >= dateFrom && i.InventoryTransactionDate <= dateTo); 
     return PartialView("_PastTransactionsPartial", inventorytransactions.ToList()); 
    } 

我該怎麼辦呢?我在控制器中捕獲了什麼?

結果將顯示在局部視圖搜索功能

編輯下面: 關閉此線程,並把問題變成新的線程

+0

您將需要使用AJAX和POST操作方法傳遞它們。 – 2013-04-26 16:46:05

+0

你說過:「我有2個參數」。他們在哪? – 2013-04-26 16:47:17

+0

@DavidTansey它是開始日期和結束日期 – blurryMVC 2013-04-26 16:49:11

回答

1

查看:

<div class="searchPastTransactions"> 
<p> 
    <label for="start">From:</label> 
     @(Html.Kendo().DatePicker() 
       .Name("from") 
       .Events(e => e.Change("startChange")) 
     ) 

     <label for="end">To:</label> 
     @(Html.Kendo().DatePicker() 
       .Name("to") 
       .Events(e => e.Change("endChange")) 
     ) 
</p> 
    <button class="k-button" id="showGrid">Search</button> 
</div> 

<script> 

    function startChange() { 
     var endPicker = $("#to").data("kendoDatePicker"), 
      startDate = this.value(); 

     if (startDate) { 
      startDate = new Date(startDate); 
      startDate.setDate(startDate.getDate() + 1); 
      endPicker.min(startDate); 
     } 
    } 

    function endChange() { 
     var startPicker = $("#from").data("kendoDatePicker"), 
      endDate = this.value(); 

     if (endDate) { 
      endDate = new Date(endDate); 
      endDate.setDate(endDate.getDate() - 1); 
      startPicker.max(endDate); 
     } 
    } 

    $(function() { 

     $("#showGrid").click(function() { 
      $.ajax({ 
       url: '@Url.Action("PastTransactionsPartial", "InventoryTransactions")', 
       type: 'POST', 
       contentType: 'application/json; charset=utf-8', 
       cache: false, 
       data: JSON.stringify({ 
        dateFrom: $('#from').val(), 
        dateTo: $('#to').val(), 
       }), 
       success: function (result) { 
        $('#divPastTransactions').replaceWith(result); 
       }, 
       error: function() { alert("Please specify from and to dates"); } 
      }); 
     }); 
    }); 

</script> 

<div id="divPastTransactions" ></div> 

控制器:

public ActionResult PastTransactionsPartial(DateTime dateFrom, DateTime dateTo) 
     { 
      var inventorytransactions = db.InventoryTransactions.Include(i => i.InventoryTransactionType).Include(i => i.InventoryType).Include(i => i.Supplier).Where(i => i.InventoryTransactionDate >= dateFrom && i.InventoryTransactionDate <= dateTo); 
      return PartialView("_PastTransactionsPartial", inventorytransactions.ToList()); 
     }