¿Por qué DropDownListFor no reconoce el valor seleccionado en mi plantilla de editor?

Tengo la siguiente plantilla de editor llamada 'DropDown.cshtml'. loslist La parte funciona bien, y la plantilla usa algo de vudú que hice para obtener elSelectList desdeViewData. El controlador coloca todas las listas de selección en el modelo de vista enViewData, y no hay nada de malo en el lado de la lista de las cosas.

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

Utilizo esta plantilla en propiedades de modelo de vista de clave externa como esta:

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

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

En el controlador,JobLevelId tiene el valor correcto inmediatamente antes de ejecutar la vista, pero ningún elemento que seleccionó en el renderizadoselect elemento. o más bien, el primer elemento en la lista de selección siempre está seleccionado.

Por queDropDownListFor ¿ignora el valor de la propiedad cuando se utiliza en mi plantilla de editor y aún así funciona bien cuando se invoca directamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta