2010-03-22 10 views
0

Supposons que vous avez quelques DropDownLists que les données du filtre:Asp.Net MVC 2: Quelle est la manière standard de conserver les valeurs sélectionnées dans les formulaires?

Car Make: [Ford,Chevrolet,etc] 
Car Year: [2010, 2009, 2008, etc] 
Car Model: [LT, SLT, etc] 

Et vous faites une sélection et ne pas montrer que nouveau LDD. Y a-t-il un endroit standard pour maintenir les valeurs précédemment sélectionnées? Ceci est pour un système de menu "drill down".

Répondre

2

Vous pouvez stocker dans un champ masqué ou vous pouvez le stocker dans la session. Je préfère garder les données hors de la session. Je voudrais simplement le coller dans un champ caché et reconstruire votre état à chaque demande.

+0

Une bonne suggestion. Je me souviens que nous avions du mal à obtenir Session.SessionID pour produire le même identifiant à chaque retour, donc les champs cachés sonne bien. –

+0

Oui, juste vérifié. Je mets Response.Write (Session.SessionID), qui continue à mettre un identifiant différent chaque fois que j'appuie sur l'actualisation, ou je vais sur un lien différent et je reviens à nouveau. Ce serait bien de savoir garder le même ID de session. –

+0

Hé, je ne savais pas que vous deviez stocker quelque chose dans la session pour qu'il conserve la même identification de session. Maintenant c'est une réponse de travail! –

1

Vous pouvez utiliser le modèle pour cela. Vous recevrez les valeurs sélectionnées de l'utilisateur, puis assurez-vous que lorsque vous remettez le modèle dans la vue, il a la valeur précédemment sélectionnée.

Si vous utilisez les aides Html pour rendre vos contrôles d'entrée, il devrait être connecté pour "libre".

+0

Il va mapper les noms de champs au modèle, mais la grande question est de savoir comment conserver cela dans le modèle lorsque ce contrôle manque le deuxième message. –