Html.DropDownList valeur sélectionnée ne fonctionne pas à l'aide de ViewBag

Bien, après quelques heures à lire des trucs, ici, en essayant, sans succès, toutes les solutions, on les retrouve aussi cet article que j'ai pensé qu'il serait sauvé ma vie... rien.

Longue histoire courte.

Voici mon point de Vue (toutes les combinaisons)

@Html.DropDownList("yearDropDown",(IEnumerable<SelectListItem>)ViewBag.yearDropDown)
@Html.DropDownList("yearDropDownxxx",(IEnumerable<SelectListItem>)ViewBag.yearDropDown)
@Html.DropDownList("yearDropDown",(<SelectList>)ViewBag.yearDropDown)
@Html.DropDownList("yearDropDown")

Voici mon Contrôleur

public ActionResult(int year)
{
var years = new int[] { 2007, 2008, 2009, 2010, 2011, 2012 }
                .Select(x => new SelectListItem { 
                    Text = x.ToString(), 
                    Value = x.ToString(), 
                    Selected=x==year }).Distinct().ToList();

            years.Insert(0, new SelectListItem { Value = null, Text = "ALL YEARS" });
            ViewBag.yearDropDown = new SelectList(years, "Value", "Text", years.Where(x => x.Selected).FirstOrDefault());
return View();
}

Voici mon rendu HTML. Sélectionné nulle part pour être trouvée.

<select id="yearDropDown" name="yearDropDown"><option value="">ALL YEARS</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>

Inutile de mentionner, mais je vais, j'ai vérifié dans ma Montre et SelectList a effectivement SelectedValue bien remplie avec la sélection de l'année passée pour le contrôleur. Mais quand je me rend à la vue, elle va à la première option.

S'il vous plaît, j'ai besoin de la solution pour DropDownList, PAS pour DropDownListFor. Je suis en lumière ce parce que j'ai vu d'autres personnes ici pour demander de l'aide mêmes et des tas de personnes qui leur a donné des instructions, et presque de l'ordre, de les utiliser DropDownListFor. Il ya une raison pourquoi j'ai BESOIN d'utiliser DropDownList.

SOLUTION:
Regarde ma propre réponse.
Cependant, ici, sont les simples modifications que j'ai apportées.

Contrôleur:

ViewBag.yearDropDown = years;

Vue:

@Html.DropDownList("yearDropDown")

OriginalL'auteur Pepito Fernandez | 2013-03-28