Comment puis-je Lier une Collection (IEnumerable) d'un type personnalisé?
J'ai les mesures suivantes pour afficher un formulaire avec 3 éléments :
[HttpGet]
public ActionResult ReferAFriend()
{
List<ReferAFriendModel> friends = new List<ReferAFriendModel>();
ReferAFriendModel f1 = new ReferAFriendModel();
ReferAFriendModel f2 = new ReferAFriendModel();
ReferAFriendModel f3 = new ReferAFriendModel();
friends.Add(f1);
friends.Add(f2);
friends.Add(f3);
return View(friends);
}
et puis un Post d'action
[HttpPost]
public ActionResult ReferAFriend(IEnumerable<ReferAFriendModel> friends)
{
if(ModelState.IsValid){
MODIFIER
Mon point de Vue, ressemble à ceci:
@model IEnumerable<Models.ReferAFriendModel>
@for(int i=0;i<Model.Count();i++)
{
@Html.Partial("_ReferAFriend", Model.ElementAt(i));
}
Partielle ressemble à ceci:
@model Models.ReferAFriendModel
<p>
@Html.LabelFor(i => i.FullName) @Html.TextBoxFor(i => i.FullName)<br />
@Html.LabelFor(i => i.EmailAddress) @Html.TextBoxFor(i => i.EmailAddress)
@Html.HiddenFor(i=>i.Id)
</p>
Quand je poste, je peux voir les champs sont affichés dans la Demande.Objet de formulaire électronique.g Demande.Form["Nom"] apparaîtra: "David Beckham","Thierry Henry". "Chicharito Fergurson", qui sont les valeurs que je suis entré dans le formulaire. Mais, dans le Post de l'action,de la valeur pour les "amis" est toujours null. Le ReferAFriendModel a trois propriétés publiques Id, Adresse e-mail et Nom.
Ce que je fais mal?
Probablement quelque chose de mal avec votre formulaire/vue. Vous devez montrer que le code.
Double Possible de Comment passer IEnumerable liste de contrôleur MVC y compris la case à cocher état?
Double Possible de Comment passer IEnumerable liste de contrôleur MVC y compris la case à cocher état?
OriginalL'auteur robasta | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez prendre un coup d'oeil à la blog suivant sur le format de câble pour les tableaux et les dictionnaires. Personnellement j'ai toujours utiliser l'éditeur de modèles dans mon opinion que prendre soin de générer des noms propres des champs d'entrée de sorte que le modèle de classeur par défaut est capable de lier les valeurs correctement.
et correspondant dans l'éditeur de modèle (
~/Views/Shared/EditorTemplates/ReferAFriendModel.cshtml
):OriginalL'auteur Darin Dimitrov