ASP.NET MVC - Html.DropDownList - Valeur non définie, via ViewData.Modèle

Avez juste commencé à jouer avec ASP.NET MVC et ont trébuché sur la situation suivante. Il se sent beaucoup comme un bug, mais si ses pas, une explication serait apprécié 🙂

La Vue contient des jolis trucs de base

<%=Html.DropDownList("MyList", ViewData["MyListItems"] as SelectList)%>
<%=Html.TextBox("MyTextBox")%>

Lorsque vous n'utilisez pas un modèle, la valeur et l'élément sélectionné sont définies comme prévu:

//works fine
public ActionResult MyAction(){
  ViewData["MyListItems"] = new SelectList(items, "Value", "Text"); //items is an ienumerable of {Value="XXX", Text="YYY"}

  ViewData["MyList"] = "XXX"; //set the selected item to be the one with value 'XXX'
  ViewData["MyTextBox"] = "ABC"; //sets textbox value to 'ABC'

  return View();
}

Mais quand vous essayez de charger via un modèle, la zone de texte a la valeur définie comme prévu, mais la liste n'ya pas un élément sélectionné à l'ensemble.

//doesnt work
public ActionResult MyAction(){
  ViewData["MyListItems"] = new SelectList(items, "Value", "Text"); //items is an ienumerable of {Value="XXX", Text="YYY"}

  var model = new {
    MyList = "XXX", //set the selected item to be the one with value 'XXX'
    MyTextBox = "ABC" //sets textbox value to 'ABC'
  }

  return View(model);
}

Des idées? Mes pensées sont que peut-être lors de l'utilisation d'un modèle, nous nous sommes limités à réglage de l'élément sélectionné sur la SelectList constructeur au lieu d'utiliser le viewdata (qui fonctionne très bien) et en passant le selectlist dans le modèle - qui aurait l'avantage de nettoyer le code un peu - je me demandais simplement pourquoi cette méthode ne marche pas....

Un grand merci pour toutes les suggestions

InformationsquelleAutor chrisb | 2008-12-23