Cette même question a été posée here et une réponse a été donnée qui est réalisable, mais avec la finalisation du framework ASP.Net MVC, je me suis demandé s'il y avait une meilleure solution.ASP.Net MVC - Édition d'une collection - est-ce l'itération d'une collection FormCollection de la meilleure façon?
Si j'ai la structure de classe suivante, comment créer la page d'affichage et, plus important encore, renvoyer les données au contrôleur.
public class Person {
public int Id {get;set;}
public string Name {get;set;}
public IList<TelNos> TelNos {get;set;}
}
public class TelNos{
public string Type {get;set;}
public string Number {get;set;}
}
Ma compréhension est que dans la page, je pourrais inclure les éléments suivants (en supposant vue fortement typé):
<% foreach (var telNo in Model.Product.TelNos)
{%>
<p><label for="telNo.Type">Type of Number</label>
<%= Html.TextBox("telNo.Type")%>
<%= Html.ValidationMessage("telNo.Type", "*")%>
</p>
<p><label for="telNo.Number">Type of Number</label>
<%= Html.TextBox("telNo.Number")%>
<%= Html.ValidationMessage("telNo.Number", "*")%>
</p>
<%} %>
En supposant que j'ai lancé 2 objets TelNos je puis voir 2 séries de zones de texte dans la vue.
Lorsque cette forme est réaffecté, la suggestion sur le post précédent était de parcourir la FormCollection dans la méthode post:
[AcceptVerbs(HttpVerb.POST)]
public ActionResult Whatever(FormCollection form)
{
....
}
est cependant maintenant la meilleure approche, ou ont les autres mises à jour de MVC fourni une meilleure solution?
Merci, Richard