Warum erkennt DropDownListFor den ausgewählten Wert in meiner Editorvorlage nicht?

Ich habe die folgende Editor-Vorlage namens "DropDown.cshtml". Daslist Teil funktioniert gut, und die Vorlage verwendet etwas Voodoo, das ich getan habe, um die erforderlichen zu bekommenSelectList vonViewData. Der Controller platziert alle Auswahllisten im Ansichtsmodell inViewData, und es ist nichts falsch mit der Listenseite der Dinge.

<code>@{
    var list = this.GetModelSelectList();
}
@Html.DropDownListFor(m => Model, list)
</code>

Ich verwende diese Vorlage für Eigenschaften von Fremdschlüssel-Ansichtsmodellen wie diese:

<code>[Required]
[UIHint("DropDown", "MVC", "SelectListName", "JobLevelSelectList")]
[Display(Name = "Job Level")]
public Guid? JobLevelId { get; set; }

public SelectList JobLevelSelectList { get; set; }
</code>

In der Steuerung,JobLevelId hat unmittelbar vor dem Ausführen der Ansicht den richtigen Wert, jedoch kein Element, das im gerenderten Objekt ausgewählt wurdeselect Element. oder vielmehr, das erste Element in der Auswahlliste wird immer ausgewählt.

Warum tutDropDownListFor Den Eigenschaftswert ignorieren, wenn er in meiner Editorvorlage verwendet wird, und dennoch einwandfrei funktionieren, wenn er direkt aufgerufen wird?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage