Si j'ai un objet composé de types complexes imbriqués, par ex. un ViewModel qui a un List<Fu>
et un List<Bar>
Qu'est-ce qu'une bonne convention de dénomination HTML pour les types imbriqués complexes de liaison de modèles?
public class WarViewModel
{
List<Fu> Fu { get; set; }
List<Bar> Bar { get; set; }
}
public class Fu
{
public int Id {get;set;}
public Soldier Private { get; set; }
}
public class Bar
{
public int Id {get;set;}
public Soldier Private { get; set; }
}
public class Soldier
{
public int Id {get;set;}
public string Name { get; set; }
public int Age { get; set; }
}
si j'avais un form
qui contenait 2 select
listes, que ce soit avec Fu ou bar, où chaque option
représenté chaque soldat dans la liste, et l'option avait des attributs contenant Id , Nom et âge, tels que
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<WarViewModel>" %>
<% using (Html.BeginForm("WarAction", "War")) { %>
<% foreach (var soldier in Fu) %>
<select class="fu">
<option id='<%= soldier.Id %>' age='<%= soldier.Age %>'><%= soldier.Name %></option>
</select>
<% } %>
<% foreach (var soldier in Bar) %>
<select class="bar">
<option id='<%= soldier.Id %>' age='<%= soldier.Age %>'><%= soldier.Name %></option>
</select>
<% } %>
<% } %>
Quelle convention de nommage ai-je besoin d'utiliser de sorte que lorsque le formulaire est soumis, sera rempli WarViewModel de la méthode d'action suivante avec les soldats qui sont sélectionnés dans les deux listes?
public ActionResult WarAction(WarViewModel war)
{
return View();
}
Ma compréhension est maintenant que le liant modèle ne saura pas soldat qui, donc il ne sera pas savoir que Id est associée à laquelle soldat. Y a-t-il un moyen pour moi de contourner cela? Je sais que le code ci-dessus ne va pas valider mais j'essaie de mettre en œuvre une preuve de concept pour moi-même.
En outre, ce qui doit être changé pour rendre cette approche RESTful?