2013-04-13 34 views
0

PagedListPager如何解釋日期參數,因爲它似乎將2003年4月1日的一個尋呼機項目和2003年1月4日的01/04/2003作爲另一個處理。使PagedListPager使用英國日期格式作爲參數

在我的剃鬚刀標記中,我顯示了2個文本框,以允許用戶選擇報表的開始和結束日期,我在底部有傳呼機以允許用戶移動結果。現在奇怪的是,如果我輸入日期如2003年4月1日並返回結果,底部的尋呼機將分頁到其他頁面之一的日期設置爲1月4日。但是,例如第2頁,反之亦然。它將採取1月4日,並將其轉換爲4月1日...?我只需要在這裏保持一致 - 但實際上硬編碼英國日期格式沒有問題。

<label for="StartDate">Start Date: </label> 
<input type="text" class="datepicker" id="StartDate" name="StartDate" 
     value="@ViewBag.StartDate" /> 
<label for="EndDate">End Date:</label> 
<input type="text" class="datepicker" id="EndDate" name="EndDate" 
     value="@ViewBag.EndDate" /> 

的ViewBag有如此輸入的結果之間的尋呼和PagedListPager使用相同的值

@Html.PagedListPager(@Model, page => Url.Action("ReadyBox", 
     new { page = page, 
     sortOrder = ViewBag.CurrentSort, 
     startDate = ViewBag.StartDate, 
     endDate = ViewBag.EndDate }), 
     PagedListRenderOptions.ClassicPlusFirstAndLast) 

並且爲此所述控制器

​​

回答

0

對於當被持久的值GET請求我會建議你使用InvariantCulture格式:

@Html.PagedListPager(
    Model, 
    page => Url.Action(
     "ReadyBox", 
     new { 
      page = page, 
      sortOrder = ViewBag.CurrentSort, 
      startDate = ViewBag.StartDate.ToString("yyyy-MM-dd"), 
      endDate = ViewBag.EndDate.ToString("yyyy-MM-dd") 
     } 
    ), 
    PagedListRenderOptions.ClassicPlusFirstAndLast 
) 

默認模型聯編程序在從GET請求綁定參數時始終使用不變的區域性格式,而在從POST請求中綁定參數時使用當前區域性。您可以在this blog post中閱讀更多關於它的內容。

相關問題