2010-11-02 5 views
1

si par quelque moyen que j'arriver à avoirComment gérer les modèles `PartialRender`?

public class DoorsModel 
{ 
    public DoorsModel() { } 

    public HttpPostedFileBase Image { get; set; } 
    public String DoorLayout { get; set; } 
    public bool ReplicateSettings { get; set; } 
    public List<DoorDesignModel> Doors { get; set; } 
} 

public class DoorDesignModel 
{ 
    public DoorDesignModel() { } 

    public HttpPostedFileBase FrontFile { get; set; } 
    public HttpPostedFileBase BorderFile { get; set; } 
} 

et dans mon View j'ai une forme normale pour remplir les Propriétés du modèle, mais le List<DoorDesignModel> J'utilise un contrôle utilisateur et utiliser

<%Html.RenderPartial("DoorDesign", Model.Doors); %> 

à l'intérieur DoorDesign.ascx J'ai:

<%@ Control 
     Language="C#" AutoEventWireup="true" 
     Inherits="System.Web.Mvc.ViewUserControl<List<MyProject.Backend.Models.DoorDesignModel>>" %> 

pour afficher toutes les formes que j'ai un for clause

MyProject.Backend.Models.DoorDesignModel field; 
for (i = 0; i < Model.Count; i++) { 
    field = Model[i]; 
    ... 
} 

et j'utilise le HTML

<input type="file" value="Upload file" 
    name="Doors.FrontFile[<%: i %>]" id="Doors.FrontFile[<%: i %>]"> 

mais bientôt j'appuie sur le bouton d'envoi, mon modèle retourne une liste null :( et je suis la création et la mise en une nouvelle liste lors du démarrage de la vue comme

public ActionResult Doors() 
{ 
    DoorsModel model = new DoorsModel(); 

    model.Doors = new List<DoorDesignModel>(); 
    for (int i= 1; i<= 24; i++) // Add 24 Doors 
     model.Doors.Add(new DoorDesignModel()); 

    return View(model); 
} 

[HttpPost] 
public ActionResult Doors(DoorsModel model) 
{ 
    // model.Doors is always null !!! 

    if (ModelState.IsValid) 
     ViewData["General-post"] = "Valid"; 
    else 
     ViewData["General-post"] = "NOT Valid"; 

    return View(model); 
} 

que dois-je avoir pour retourner la liste des portes de la partie RenderPartial?

simple mockup de la vue

alt text

+0

1. Avez-vous créé un modèle DoorsModel Binder? 2. Avez-vous défini le paramètre From type sur "multipart/form-data"? – Bivoauc

+0

@Bivoauc 1. Oui, vous pouvez le voir comme un héritage de mon modèle dans le contrôle utilisateur - 2. Oui, je le fais et fonctionne très bien avec le 'Image' en dehors du contrôle utilisateur. – balexandre

Répondre

Questions connexes