2009-02-25 4 views
1

У меня есть на моей странице просмотра MVC. Я использую JQuery для фильтрации сетки при изменении выбранного индекса.сообщение <Asp: DropDownList> значение с ссылкой на действие (asp.net MVC JQuery)

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

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

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

ответ

1

Я думаю, что я хотел бы использовать форму вместо ссылки действия. Затем ваш 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") %> 
<% } %>