MVC Razor / Textbox dynamiques
Bonjour,
Voici le modèle (simplifié l'extrême)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public class UserFieldModel
{
public string Code { get; set; } // Identifiant du champ libre
public string Title { get; set; } // Entête du champ
public string Value { get; set; } // Valeur
}
public class CreateViewModel
{
public UserFieldModel[] UserFields { get; set; }
} |
Le contrôleur :
Code:
1 2 3 4 5 6 7
|
public ActionResult Create()
{
var rvm = new CreateViewModel();
rvm.UserFields = Service.GetInfosData<UserFieldModel>().ToArray();
return View(rvm);
} |
La méthode GetInfosData me retourne une liste qu'il faut afficher à l'écran ..
La vue :
Là aussi, simplifiée au maximum pour des questions de lisibilité
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
@model CreateViewModel
...
for (int i = 0; i < Model.UserFields.Count(); i++)
{
<div>
@Html.HiddenFor(x => x.UserFields[i].Value)
@Html.HiddenFor(x => x.UserFields[i].Code)
@Html.HiddenFor(x => x.UserFields[i].MaxLenght)
@Html.HiddenFor(x => x.UserFields[i].Title)
@Model.UserFields[i].Title
@Html.TextBoxFor(x => x.UserFields[i].Value})
</div>
} |
Et enfin le postback
Code:
1 2 3 4 5 6
|
[HttpPost]
public ActionResult Create(RequestCreateViewModel vm)
{
...
} |
vm.UserFileds contient bien le bon nombre d'éléments et toutes les propriétés sont définies SAUF la valeur de ce que j'ai saisi qui vaut toujours NULL..
je dois rater un truc mais je ne vois pas quoi du tout....
j'ai essayé avec une List<UserFieldModel> dans le model, c'est pareil.
Avec un @Html.EditorFor et le template qui va derrière -> idem
Avec des foreach des hidden de tous les côtés etc etc... toujours vide !
Je craque :)
Quelqu'un pourrait il m'éclairer sur le sujet ?
Merci un milliard de fois d'avance !!