2010-01-25 12 views
1

je me faire du mal à essayer de ma forme de travail avec mes modèles ...ASP.NET MVC - Soumettre le formulaire avec le modèle complexe avec EntitySet

Alors, j'ai 3 modèles

Account 
    has_one -> Company 
    has_many -> Individuals -> has_one Document 

Alors le compte peut avoir une entreprise et plusieurs individus avec un document chacun.

Quand soumettre mes formes, j'ai l'action suivante

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult OpenAnAccount(string area, [Bind(Exclude = "Id")] Website.Model.Account account) 
{ 
    var db = new DB(); 

    var type = new int(); 

    switch (area) 
    { 
     case "business": type = 1; break; 
     case "private": type = 2; break; 
    } 

    if (ModelState.IsValid) 
    { 
     try 
     { 
     account.Type = type; 
     db.Accounts.InsertOnSubmit(account); 
     db.SubmitChanges(); 
     return View("OpenAnAccount/ThankYou"); 
     } 
     catch 
     { 
     return View(); 
     } 
    } 
    else 
    { 
    return View(); 
    }  
} 

Et sur ma forme des choses simples comme

%label{for='companyName'} <em>*</em>Company Name 
%input{class='required' id='companyName' name='Company.Name' type='text'} 
%label{for='companyTradeName'}Trading As (if Different) 
%input{id='companyTradeName' name='Company.Trade' type='text'} 
%label{for='companyRegistrationNumber'} <em>*</em>Company Registration Number 
%input{class='required' id='companyRegistrationNumber' name='Company.Registration' type='text'} 
%label{for='vatNumber'}VAT Number (if Applicable) 
%input{id='vatNumber' name='Company.VAT' type='text'} 

Ce qui signifie que je nomme les champs comme Company.Name, Company.Registration, etc ... et pour les personnes que je fais comme ça

%label{for ='firstName_0'} <em>*</em>First Name 
%input#firstName_0.required.firstName{ name='Individuals[0].FirstName' type='text'} 
%label{for='middleName_0'} Middle Name 
%input#middleName_0{ name='Individuals[0].MiddleName' type='text'} 
%label{for='lastName_0'} <em>*</em>Last Name 
%input#lastName_0.required{ name='Individuals[0].LastName' type='text'} 

en tant qu'individus [0] .FirstName, Individus [0] .LastName, etc

Mais ce qui se passe, c'est que je reçois en effet la génération de compte avec mon entreprise, mais cela ne fonctionne pas pour les individus .... il ne fait rien avec la base de données?

Quelqu'un pourrait m'aider à ce sujet?

J'ai vérifié quelques ressources comme ceci http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx mais cela ne fonctionne pas dans mon cas je suppose, parce que cela n'a rien changé.

Merci à l'avance

Répondre