Je suis nouveau dans MVC 3 et j'ai une question concernant l'approche correcte.
Imaginez que j'ai un modèle:
public class MonModelePersonnalise
{
[Required]
public string NomUtilisateur { get; set; }
[Required]
public DateTime? DateNaissance { get; set; }
[Required]
public string Ville {get;set;} //Vers la vue partielle
[Required]
public string Rue {get;set;} //Vers la vue partielle
}
Et ici j'ai une vue
@Html.TextBoxFor(m => m.NomUtilisateur) @Html.TextBoxFor(m => m.DateNaissance) @Html.Action("GroupeLocalisation", "Accueil") //Ici la ville et la rue devraient être rendues
Ma vue partielle ressemblera à ceci: @Html.TextBoxFor(m => m.Ville) @Html.TextBoxFor(m => m.Rue)
Et voici l'action dans le contrôleur:
[ChildActionOnly]
public ActionResult GroupeLocalisation()
{
MonModelePersonnalise modele = new MonModelePersonnalise (); //Dois-je vraiment instancier une nouvelle instance du modèle et la passer à la vue partielle
return PartialView("_VueTemporaire", modele);
}
Essentiellement, ma vue générale aura tous les champs avec des zones de texte, mais maintenant dans ma vue partielle, je voudrais également que certaines de ces propriétés de mon modèle soient rendues correctement et après la soumission du formulaire, elles doivent être disponibles dans le même modèle que toutes les autres propriétés.
Donc ma question, dans l'action qui renvoie la vue partielle, dois-je vraiment instancier une nouvelle instance du modèle? Mais alors les données seront divisées entre 2 instances du modèle, non?
Comment organiser cela, comment puis-je ensuite ajouter les données au modèle de vue générale à partir de la vue partielle?