У меня есть следующий шаблон редактора под названием «DropDown.cshtml». Часть list
отлично работает, и в шаблоне используется какое-то вуду, которое я сделал, чтобы получить нужный SelectList
от ViewData
. Контроллер помещает все избранные списки в модель просмотра в ViewData
, и нет ничего плохого в списке вещей.Почему DropDownListFor не распознает выбранное значение в моем шаблоне редактора?
@{
var list = this.GetModelSelectList();
}
@Html.DropDownListFor(m => Model, list)
Я использую этот шаблон на ключевые свойства зарубежных вид модели, как это:
[Required]
[UIHint("DropDown", "MVC", "SelectListName", "JobLevelSelectList")]
[Display(Name = "Job Level")]
public Guid? JobLevelId { get; set; }
public SelectList JobLevelSelectList { get; set; }
В контроллере, JobLevelId
имеет правильное значение непосредственно перед выполнением зрения, но ни один элемент не выбран в rendered select
элемент. или, вернее, первый элемент в списке выбора всегда выбирается.
Почему DropDownListFor
игнорирует значение свойства при использовании в моем шаблоне редактора и все же отлично работает при вызове напрямую?
см. Http://stackoverflow.com/questions/10039006/mvc-dropdownlist-selectedvalue-not-displaying-correctly – RickAndMSFT
@RickAndMSFT, я ничего не вижу в этом вопросе или его ответах, которые действительно применимы здесь. Принятый ответ заключается в том, что свойство модели в лямбда 'DropDownListFor' перезаписывает выбранный id * выбранного списка. Это не помогает мне с моей проблемой «lambda value» игнорироваться только в моем шаблоне редактора, а не в моих сырых DDL. – ProfK
Я бы не удивился, если 'ExpressionHelper.GetExpressionText()' (который используется помощниками для поиска имен свойств) не работает с 'm => Model'. – bhamlin