2010-09-24 6 views
0

Voici ma conception de base de données.
Contactez-
ContactID
ContactName

EmailAddress
EMAILID
ContactID
EmailText

Dans asp.net mvc 2. Ajouter un nouvel enregistrement de relation dans la vue de création

Dans create View, je ContactName sur le terrain et un bouton Ajouter une adresse e-mail.
Lorsque je clique sur l'adresse e-mail, il y a un popup qui effectue une requête ajax pour obtenir les champs d'adresse. Mon problème est que j'ai besoin de créer le contact avant de créer l'adresse car j'ai besoin d'un contactID en premier. Quelqu'un sait comment procéder?


J'utilise asp.net MVC 2 et Entity Framework 4

Répondre

0

Mon code fait quelque chose d'un peu plus compliqué, mais très similaire. Ce que je fais est de créer et écrire l'email avec un ContactID vide quand la boîte de dialogue est fermée. Ensuite, lorsque je soumets mon formulaire de contact, j'ai un champ avec le EmailID. Dans mon action d'enregistrement de contact, je vérifie l'enregistrement d'email et si le champ de contactID est vide, j'insère le ContactID et enregistre l'enregistrement d'email. J'utilise la même vue partielle pour la création et l'édition, donc si c'est Modifier un e-mail existant ou ajouter un nouveau courriel à un contact existant, le champ ContactID est déjà rempli.

Dans ce cas simple, il peut sembler plus logique lorsque les utilisateurs ferment la boîte de dialogue pour enregistrer les informations dans les champs masqués de votre formulaire parent (si vous ne voulez pas les afficher, est le meilleur), puis créez et enregistrez les deux enregistrements sur le contact.

Si c'est un « Créer » je ne comprends pas vraiment pourquoi vous avez besoin d'une demande AJAX pour obtenir des valeurs ...

+0

J'utilise cette méthode ici. Merci de votre aide –

2

Lorsque vous ajoutez votre e-mail, vous êtes submiting que sur votre serveur? Ou êtes-vous simplement en train de transmettre ces données à la fenêtre parente (où est le nom du contact), et en les plaçant sous le nom afin qu'il soit visible avant la soumission?

Une autre option serait plutôt que d'ouvrir une fenêtre pop-up, il suffit de faire une JS magie et montrer un champ e-mail juste en dessous du nom du contact (ou tout simplement avoir une zone de texte d'option sous Nom du contact.

Vous verriez :

Contact Name [......] 
(Add Email) + 

Ils cliquent sur + et il va.

Contact Name [.......] 
Email 1: [.......] (remove x) 
(Add Email) + 

Sur demande, vous auriez votre nom de contact et une belle liste d'e-mails pour aller avec elle Créez votre contact et la n créez vos emails. =

Questions connexes