2012-12-14 79 views
0

我是ASP.NET MVC的新手。我在視圖上顯示記錄列表。並且還有一個下拉列表,它可以控制頁面上顯示的記錄數,可以選擇10,20和50.ASP.NET MVC在帖子後面保留下拉值

爲了達到這個目的,我使用jquery change事件來觸發我的控制器操作。以下是我的Java腳本代碼: -

$('select[name="pagingCount"]').on('change', function (ev) { 
      ev.preventDefault(); 
      var pagingCount = $('select[name="pagingCount"]').val(); 
      var url = '@Url.Action("Action","Controller")?pagingCount=' + pagingCount; 
      window.location = url; 
     }); 

它工作正常。但我想在頁面重新加載後保持選定的值。我不知道如何做到這一點?由於下拉菜單不屬於任何模型屬性。 任何幫助表示讚賞。謝謝

回答

3

您應該能夠設置基於pagingCount參數下拉值在URL

function getParameterByName(name) 
{ 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regexS = "[\\?&]" + name + "=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.search); 
    if(results == null) 
    return ""; 
    else 
    return decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 
$(function(){ 
    $('select[name="pagingCount"]').val(getParameterByName("pagingCount")); 
} 
+0

您的解決方案適用於我。非常感謝。 – sanjeev

1

您可能已在您的操作方法中使用pagingCount參數。

您現在需要做的就是將該值傳遞給您View(最好通過在您的ViewModel中設置屬性)並讓視圖在下拉列表中設置所選值。

+0

但是,下拉不屬於任何視圖模型屬性。我可以將pagingCount傳遞迴查看,但不知道如何使用它來選擇下拉值。 – sanjeev

+0

你目前如何通過列表綁定到下拉列表? ViewModel,ViewData,ViewBag?您正在使用哪種方法,您應該能夠爲pagingCount添加另一個屬性。您可能希望包含Action和View的代碼,以便我們可以獲得更好的想法。 –