2012-12-14 2 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

당신은 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 매개 변수에 따라 드롭 다운의 값을 설정 할 수 있어야하지만 드롭 다운 어떤 뷰 모델 속성에 속하지 않습니다. pagingCount를 다시 볼 수는 있지만 드롭 다운 값을 선택하는 방법은 모르겠다. – sanjeev

+0

현재 드롭 다운에 바인딩하기 위해 목록을 어떻게 전달하고 있습니까? ViewModel, ViewData, ViewBag ?? 어떤 방법을 사용하든 pagingCount에 다른 속성을 추가 할 수 있어야합니다. 액션과 뷰를위한 코드를 포함시켜보다 나은 아이디어를 얻을 수 있습니다. –

관련 문제