2010-03-09 4 views
1

J'ai une application qui a une table et une table Projets Utilisateurs. Dans mon formulaire Créer un nouveau projet, j'ai un champ obligatoire pour le gestionnaire de projet. Toutefois, l'enregistrement utilisateur pour Project Manager n'existe peut-être pas encore. Le gestionnaire de projet est un champ obligatoire. Jusqu'à présent, j'ai développé l'application sur une base «un écran, un enregistrement», mais ce scénario exigerait que l'utilisateur crée d'abord l'enregistrement de l'utilisateur (puisque le gestionnaire de projet est un champ obligatoire), puis créer le enregistrer le projet et affecter le nouvel utilisateur en tant que chef de projet. Intuitivement, un utilisateur s'attendrait à ce que le projet soit créé d'abord, mais cela nécessiterait trois étapes (Création de projet, Création d'utilisateur, Attribuer un utilisateur en tant que gestionnaire de projet), et ils devraient être verrouillés ensemble, puisque le projet Manager est un champ obligatoire et l'application doit toujours être suffisamment intelligente pour utiliser un enregistrement utilisateur existant, s'il est disponible.Processus de création de dossiers de projet et l'utilisateur dans ASP.NET MVC application

Quelle est la stratégie que vous utilisez? Voulez-vous mettre tout sur une forme, y compris le nouvel utilisateur en option) et pousser un ViewModel compliqué à la méthode du contrôleur, ou utiliseriez-vous une stratégie de forme en plusieurs étapes, ou vous faire autre chose? J'ai envisagé des choses comme un formulaire popup New User sur le formulaire Nouveau projet, mais cela semble un peu trop intelligent, et pas assez RESTful.

Répondre

0

Dans ce cas, je pense qu'il est raisonnable d'inclure un « Créer un nouvel utilisateur » Sélection dans la liste déroulante Chef de projet sur le formulaire Nouveau projet. Si cette option est sélectionnée, l'utilisateur reçoit le formulaire Nouvel utilisateur et peut ajouter l'enregistrement Project Manager en même temps que le projet.

Si vos vues et ViewModels sont bien isolées, vous pouvez charger le nouveau formulaire utilisateur en tant que partie dans le formulaire Nouveau projet en utilisant AJAX. De cette façon, vous pouvez garder vos Views, Models et ViewModels autonomes tout en offrant une bonne expérience utilisateur.

0

Un assistant comme le comportement peut être le plus convivial. Vous pouvez ignorer des étapes inutiles si nécessaire.