2011-08-03 4 views
2

Je crée ma première application MVC et l'une des pages doit répertorier une série de questions à partir d'une table dans une base de données. J'ai mis en place le modèle:MVC 3 Webapp - Model Binder

public class Audit 
{ 
    public DateTime InspectionDate { get; set; } 
    public string Engineer { get; set; } 
    public List<AuditGroup> AuditGroups { get; set; } 
} 

public class AuditGroup 
{ 
    public string GroupName { get; set; } 
    public List<AuditQuestion> AuditQuestions { get; set; } 
} 

public class AuditQuestion 
{ 
    public string Group { get; set; } 
    public string Question { get; set; } 
    public string Answer { get; set; } 
    public string Comments { get; set; } 
} 

Les modèles contient des listes, j'ai créé une page appelée Créer et peuplé le modèle avec les groupes et les questions dans les groupes et ceux-ci affichés sur l'amende page. Quand je réponds aux questions (remplir une zone de texte) et appuyez sur le bouton d'envoi appelle le contrôleur:

[HttpPost] 
    public ActionResult Create(Audit newAudit) 
    { 
     try 
     { 
      // TODO: Add insert logic here 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

Le newAudit a données dans la date d'ingénieur et d'inspection, mais le liant ne ramasse pas les listes sur la page . Ceci est une version réduite j'ai essayer de travailler dehors:

@{ 
    ViewBag.Title = "Audit"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@model test.Models.Audit 
<h2> 
    Audit</h2> 
@using (Html.BeginForm()) 
{ 
<fieldset> 

    @foreach (var AuditGroups in Model.AuditGroups) 
    { 
    @Html.EditorFor(x=> AuditGroups.GroupName) 

     } 
</fieldset> 
<p> 
    <input type="submit" value="Create" /> 
</p> 

}

Je suis donc ici traversais la liste et de les mettre sur la page mais soumettre la liste est nulle. Est-ce que quelqu'un sait où je vais mal? En résumé, ce que je fais est d'envoyer une liste de questions à la page, l'utilisateur à remplir et soumettre les réponses, mais je ne reçois pas les réponses pour l'une des listes.

Répondre

0

veuillez jeter un oeil à ma réponse à this question. Il contient des articles de blog traitant de ce problème. En outre, lisez le commentaire de Yarx sur la réponse dans laquelle il a fourni le lien vers un post qui l'a aidé à résoudre le problème.

+0

Salut, merci pour votre réponse rapide, j'ai téléchargé l'exemple de code de http://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc- part-1/comme vous l'avez recommandé et ressemble à ce dont j'ai besoin. Je te tiendrai au courant ... – MartGriff