ok, У меня есть ситуация, когда мне нужно иметь несколько DDL-файлов «BayTypes», которые используют тот же словарь, что не является проблемой. Один DDL для каждого из «n» BayOptions. Я передаю словарь на мой взгляд, как 'BayTypes', как это:MVC/C#: DropDownListДля выбора «selected» item
(контроллер)
var bayTypes = _bayTypeRepository.GetBayTypes().ToList();
property.BayTypes = bayTypes.ToDictionary(g => g.Name, g => g.BayTypeGuid.ToString());
(Просмотр)
var overrideValue = item.BayTypeOverride ? item.BayTypeOverrideValue.BayTypeGuid.ToString() : string.Empty;
var result = (from x in Model.BayTypes
select new SelectListItem()
{
Text = x.Key,
Value = x.Value,
Selected = x.Value == overrideValue <-- ***this is working***
});
if (item.BayTypeOverride == true)
{
@Html.DropDownListFor(x => x.BayTypes, result, new { @Name = "BayOptionsToSubmit[" + aCounter + "].BayTypeOverrideValue" })
}
else
{
@Html.DropDownListFor(x => x.BayTypes, result, new { @Name = "BayOptionsToSubmit[" + aCounter + "].BayTypeOverrideValue", @style = "display:none;" })
}
Правильная деталь получает выбранные в результате» 'объекта. Если я выйду и посмотрю «результат», я вижу, что «Selected = true» для правильного ... но он не выбирает в DDLFor, когда он отображает ...
Что мне не хватает?
У меня это работает несколько иначе в другом месте этого решения, используя шаблон Viewbag, описанный выше, но он работает..lol Это не связанное поле. Я перехожу только в словарь, а не в список объектов «BayType», а через Viewmodel я повторно привязываюсь к объектам BayType/BayOptions. Я проверю значения, которые вы предлагаете просмотреть. Хотя вы не упоминаете «исправить». Благодарю. –
«Исправить» зависит от того, что вы найдете. Например, если вы устанавливаете что-то в свойство «ViewBag» с аналогичным именем, вы можете просто изменить имя этого свойства. Однако, если вы получаете что-то из параметра запроса, вам, возможно, придется адаптироваться по-другому. Все это зависит. –
проблема в том, что есть «n» BayOptions, поэтому я не могу установить выбранный в контроллере, он должен быть установлен в представлении на BayOption. –