2016-09-07 45 views
0

我正在使用搜索,分頁和排序來開發MVC4應用程序。一切正常,一切正常。 現在我正在使用Ajax &部分視圖轉換相同的應用程序。 我怎樣才能通過我的搜索&排序參數通過Paging控制駐留在部分視圖。現在,我可以在部分視圖中加載過濾的數據,但移動到下一頁,丟失了我的搜索參數並加載了所有記錄,忽略了搜索過濾器。在MVC4中使用AJAX分頁搜索和排序

我的尋呼控制在_PartialView.cshtml

@Html.PagedListPager(Model, 
         page => Url.Action("AjaxMethod", 
          new 
          { 
           page, 
           searchByUserName = Request.QueryString["searchByUserName"], 
           searchByReaderName = Request.QueryString["searchByReaderName"], 
           searchByReaderType = Request.QueryString["searchByReaderType"], 
           searchByUploadDate = Request.QueryString["searchByUploadDate"], 
           sortBy = Request.QueryString["sortBy"] 
          }), 
         //new PagedListRenderOptions.() { Display = PagedListDisplayMode.IfNeeded, DisplayPageCountAndCurrentLocation = true } 
         PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions(){ HttpMethod = "GET", UpdateTargetId = "divData"}) 
         ) 

請建議,我錯過了什麼....

回答

0

我才知道我爲缺少,局部視圖不得到請求。 QueryString值這就是爲什麼分頁控制丟失搜索參數並加載所有記錄。因此,我改性尋呼機控制在_PartialView.cshtml如下:

@Html.PagedListPager(Model, 
         page => Url.Action("AjaxMethod", 
          new 
          { 
           page, 
           searchByUserName = ViewBag.searchByUserName, // Request.QueryString["searchByUserName"], 
           searchByReaderName = ViewBag.searchByReaderName, // Request.QueryString["searchByReaderName"], 
           searchByReaderType = ViewBag.searchByReaderType, // Request.QueryString["searchByReaderType"], 
           searchByUploadDate = ViewBag.searchByUploadDate, // Request.QueryString["searchByUploadDate"], 
           sortBy = ViewBag.sortBy // Request.QueryString["sortBy"] 
          }),       
         PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() 
         { HttpMethod = "GET", UpdateTargetId = "divData", LoadingElementId="divloading" }) 
         )

在控制器操作方法初始化這些ViewBag對象。 任何人都有比上述問題更好的解決方案。請建議。

+0

大家好, 任何人都可以提出替代和更好的解決方案。 –