2009-02-25 3 views
1

MVC보기 페이지가 있습니다. 선택한 인덱스가 변경되면 JQuery를 사용하여 표를 필터링합니다.작업 링크가 포함 된 <Asp : DropDownList> 값 (asp.net MVC JQuery)

페이지 하단에는 조치 링크가 있습니다. 액션 링크가 가리키는 컨트롤러에이 값을 게시하고 싶습니다.

문제는 분명히 상자 값이 바뀔 수 있다는 것입니다.

조치 링크를 사용하여 동적으로 변경되는 데이터를 게시하려면 어떻게해야합니까?

답변

1

행동 링크 대신 양식을 사용한다고 생각합니다. jQuery는 쿼리 매개 변수에 해당하는 양식 안의 일부 숨겨진 필드를 업데이트합니다. 귀하의 "링크"(버튼이 될 수 있음) 양식을 제출 onclick 처리기가있을 것이다. URL에 관심이 있다면 어디에서 볼 수 있습니다. 컨트롤러 액션을 올바른 경로 매개 변수로 리다이렉트하면됩니다.

또는 선택 항목이 변경되면 ActionLink에서 href를 생성하고 바꿀 수 있습니다. 여기에는 경로가 어떻게 구성되는지를 이해하는 코드를 뷰에 유지하는 것이 포함됩니다.

참고 : 다음 예제는 아마도 드롭 다운 자체를 감싸는 형태로 더 잘 작동 할 것이고 단순히 선택 사항을 변경하면 제출 하겠지만 그 패턴은 제가 묘사하고자하는 것입니다.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#formLink').click(function() { 
      $(this).parent('form').submit(); 
      return false; 
     }); 
     $('#PageSizeMenu').change(function() { 
      $('#PageSize').val($(this).val()); 
     }) 
    }); 
</script> 

<%= Html.DropDownList("PageSizeMenu", ...) %> 
<% using (Html.BeginForm("List")) { %> 
    <a id="formLink" href="some-reasonable-link-for-non-javascript">Go</a> 
    <%= Html.Hidden("PageSize") %> 
<% } %>