.Net MVC Pb! Controller <=> textbox
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.
Code:
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();"})%> |
Suite à ca se trouve l'ensemble des données correspondant dans des texteAreas.
Code:
1 2 3
| <label for="Sector">Sector:</label>
<%= Html.TextBox("Sector", ViewData["Sector"] ?? "")%>
<%= Html.ValidationMessage("Sector", "*") %> |
Suit un bouton Save (submit => Form)
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:
Code:
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); |
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.
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 :D