отправьте значение <Asp: DropDownList> со ссылкой на действие (asp.net MVC JQuery) - PullRequest
1 голос
/ 25 февраля 2009

У меня есть на моей странице просмотра MVC. Я использую JQuery для фильтрации сетки при изменении выбранного индекса.

В нижней части страницы у меня есть ссылка действия. Я хотел бы опубликовать это значение на контроллере, на который указывает ссылка действия.

Проблема в том, что значение поля может измениться.

Как можно опубликовать динамически изменяемые данные с помощью ссылки действия?

1 Ответ

1 голос
/ 25 февраля 2009

Думаю, я бы использовал форму вместо ссылки на действие. Затем ваш jQuery обновит некоторые скрытые поля внутри формы, которые соответствуют параметрам запроса. Тогда ваша «ссылка» (может быть кнопкой) будет иметь обработчик onclick, который отправляет форму. Если вам небезразличен URL-адрес - и я вижу, где вы можете - просто сделайте так, чтобы действие вашего контроллера перенаправлялось на себя с правильными параметрами маршрута.

В качестве альтернативы, вы можете создать и заменить href в ActionLink при изменении выбора. Это будет включать поддержание кода в представлении, которое понимает, как строятся ваши маршруты.

Примечание: следующий пример, вероятно, будет лучше работать с формой, обернутой вокруг самого раскрывающегося списка и простой отправкой по выбору, измененной, но меня интересует рисунок.

 <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") %>
 <% } %>
...