2010-06-23 5 views
1

Je travaille sur une page web qui offre un formulaire avec une liste déroulante pour voir les données d'une année différente. L'année fait partie du routage URL configuré. Lorsque la page se charge, l'URL peut être quelque chose comme: activitylog/department/year.Comment modifier l'URL dans ASP.NET MVC lorsqu'un formulaire est soumis?

Lorsque le formulaire est soumis sur cette page, l'URL ne change pas, même si l'utilisateur a sélectionné une autre année à afficher. Tout semble fonctionner correctement. Lorsque l'année est modifiée de 2010 à 2008 sur le formulaire, les informations correctes pour 2008 sont affichées sur le serveur Web. Cependant, l'URL affichée dans le navigateur continue d'afficher 2010. Bien que ce ne soit pas un réel problème, je pense qu'il serait bien d'afficher l'URL directe pour cette page dynamique particulière, à savoir: activitylog/IT/2008 .

Quelle est la méthode préférée pour gérer quelque chose comme ça? Je crois que je pourrais utiliser JQuery pour capturer le formulaire de soumission, et générer la nouvelle URL en utilisant l'année sélectionnée.

Existe-t-il une méthode intégrée à MVC capable de gérer ce problème?

Répondre

3

Vous pouvez utiliser jQuery pour modifier l'action de forme avant de soumettre:

$(function() { 
    $('#idofyourform').submit(function() { 
     var selectedYear = $('#idofyeardropdown').val(); 
     this.action = this.action.replace(/\/[\d]{4}$/, '/' + selectedYear); 
     return true; 
    }); 
}); 
+0

J'ai fait quelques mods pour ma situation particulière, mais que cela fonctionne bien. Merci. – Swoop

1

Javascript va être votre ami ici. Vous pouvez créer une méthode javascript pour modifier la propriété d'action sur le formulaire et utiliser l'événement onSubmit sur le formulaire ou demander à votre bouton d'appeler directement cette méthode (n'utilisez pas type = "button" et pas type = "soumettre" sur votre entrée) et avoir la méthode définir l'action, puis soumettre le formulaire.

Questions connexes