문제

내 MVC 보기 페이지에 이 있습니다.선택한 인덱스가 변경되면 JQuery를 사용하여 그리드를 필터링합니다.

페이지 하단에는 해당 작업 링크가 있습니다.작업 링크가 가리키는 컨트롤러에 이 값을 게시하고 싶습니다.

문제는 분명히 상자의 가치가 바뀔 수 있다는 것입니다.

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

도움이 되었습니까?

해결책

제가 할 일은 액션 링크 대신 양식을 사용하는 것이라고 생각합니다.그런 다음 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") %>
 <% } %>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top