Je pense que ce que je ferais est d'utiliser un formulaire au lieu d'un lien d'action. Votre jQuery mettrait alors à jour certains champs cachés dans le formulaire correspondant aux paramètres de la requête. Votre "lien" alors (pourrait être un bouton) aurait un gestionnaire onclick qui soumet le formulaire. Si vous vous souciez de l'url - et je peux voir où vous pourriez - il suffit que l'action de votre contrôleur se redirige vers lui-même avec les paramètres d'itinéraire corrects.
Vous pouvez également créer et remplacer href sur ActionLink lorsque la sélection est modifiée. Cela impliquerait de maintenir le code dans la vue qui comprend comment vos routes sont construites.
Remarque: l'exemple suivant fonctionnerait probablement mieux avec le formulaire enroulé autour de la liste déroulante elle-même et simplement soumis lors de la sélection modifiée, mais le motif est ce que je suis intéressé à décrire.
<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") %>
<% } %>