Question

Il y a une bonne solution simple pour une multi-page de contrôle "Assistant" ici dans MVC:

http://www.highoncoding.com/Articles/647_Creating_Wizard_Using_ASP_NET_MVC_Part_1.aspx

http://www.highoncoding.com/Articles/652_Creating_Wizard_in_ASP_NET_MVC_Part_2.aspx

Le modèle est peuplé en plusieurs étapes et un champ caché est utilisé pour maintenir les données entre les pages (un peu similaire à ViewState). Cependant, avec la sortie de MVC 2 RC2, le mécanisme de validation a été changé de « validation d'entrée » à « la validation du modèle »: http: // bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html

Maintenant, la première page du « Wizard » ne fait jamais validé, car il remplit seulement une partie du modèle. (Le reste doit être peuplé au cours d'autres étapes, mais comme on peut les champs nécessaires, les erreurs de validation sont présentés lors de la validation de la première page et l'utilisateur ne peut pas continuer).

Est-il possible de modifier cette mise en œuvre du « contrôle Wizard » en fonction de MVC RC2, ou si toute logique être repensée? Y a-t-il des meilleurs modèles pour la création d'un « contrôle assistant » de plusieurs pages pour remplir un modèle?

Était-ce utile?

La solution

Je lis à travers les articles énumérés brièvement. Je pense que le problème est que vous passez un objet de domaine (client dans la démo) sur les deux écrans pour modifier. La moitié du client obtient édité dans le premier écran et l'autre moitié est édité à l'écran suivant.

Le modèle qui devrait vous aider ici est que, plutôt que de passer votre modèle actuel (client) à votre présentation, vous devriez (à mon humble avis) être seulement évanouissions un « modèle de vue ». C'est-à-dire que chaque point de vue (ou étape de l'assistant dans ce cas) aurait son propre modèle. CustomerNameViewModel et CustomerAddressViewModel pourraient être des objets appropriés pour le tutoriel indiqué. Cela signifie que chaque objet soit rempli de données entièrement quand ils reviennent pour la validation. Une fois que l'objet a été validé de façon appropriée, vous pouvez remplir votre objet client. Une fois que l'objet client est terminé à la fin de l'assistant alors vous persisteront l'objet client.

Autres conseils

http: // Blog .stevensanderson.com / 2010/02/19 / partielle validation en aspnet-mvc-2 / . Steven montre comment utiliser un ActionFilter pour faire la validation de vue partielle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top