Bonjour à toute la communauté
Bon voila mon problème, j 'ai une Vue qui doit afficher un DropDownList avec en ViewData une liste de données lambda. (jusqu'ici tout vas bien, Je rajoute un champs "--Create--" a celui ci. De plus, j'ai rajouter l'option onchange => submit le form.
Suite à ca se trouve l'ensemble des données correspondant dans des texteAreas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <% using (Html.BeginForm("Index", "Experience", FormMethod.Post, new { id = "TheForm"})) {%> <%=Html.DropDownList("expId", (SelectList)ViewData["expId"], "-- Create --", new { onchange = "document.getElementById('TheForm').submit();"})%>
Suit un bouton Save (submit => Form)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <label for="Sector">Sector:</label> <%= Html.TextBox("Sector", ViewData["Sector"] ?? "")%> <%= Html.ValidationMessage("Sector", "*") %>
Donc mon sénario est que si l'utilisateur change l'index de la dropdownlist cela change les données des texteares en passant par le controlleur.
Si il est sur "--Create--" les champs sont vide et attendant d'être remplis avant d'être sauvegarder.
le contrôleur:
A l'appel du contrôleur via HttpVerbs.Post, je recupere bien les informations du nouveau UserID par exemple et je rappel la fonction Index afin de recharger la vue avec les bonnes données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public ActionResult Index(int cvId, int? expId) { var model = new IndexModel { ... ViewData["Sector"] = model.SelectExperience.Sector; expIdSended = (int) expId; AddExpToViewData((int) expId, cvId); expIdSended = 0; } return View("Index",model); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult Index(int companyId, [Bind(Exclude = "Id")] Experience expToCreate, int? ExpId) // TODO CvId a ajouter en param { if(ExpId != expIdSended && ExpId!=null) { ViewData["Sector"]=expToCreate.Sector; Experience expPro = _service.GetExp((int) ExpId); return Index(expPro.Cv.Id , ExpId);
Mon problème est (accrochez vous) cela marche sur des HTML.Encode (ViewData["UserName"] ou Model.User.Name) mais pas sur mes TextArea qui reste comme avant ?!?!?!
Pourquoi? et comment résoudre ce problème.
Merci![]()
Partager