У меня есть модель родительского представления, связанная с представлением, которое содержит свойство, которое представляет собой список других моделей представлений.Выбранное значение не задано для ASP.Net MVC 3 DropDownListFor
Вот код родительского вид модели:
var timeAvailability = (from u in _entities.UserTimeAvailabilities
where u.UserId == userId
select u).ToList();
for(int index = 0; index < timeAvailability.Count; index++)
{
var availableTime = timeAvailability[index];
TimeAvailability.Add(new AvailableTimeSlotViewModel(index)
{
SelectedDay = availableTime.DayId,
SelectedStartTime = availableTime.StartHourId.HasValue ? availableTime.StartHourId.Value : 0,
SelectedEndTime = availableTime.EndHourId.HasValue ? availableTime.EndHourId.Value : 0
});
}
TimeAvailability является Список
Здесь AvailableTimeSlotViewModel:
public List<SelectListItem> Days { get; set; }
public int Index { get; set; }
public List<SelectListItem> Hours { get; set; }
[Display(Name = "Select Day")]
public int SelectedDay { get; set; }
[Display(Name="Start Time")]
public int SelectedStartTime { get; set; }
[Display(Name = "End Time")]
public int SelectedEndTime { get; set; }
public AvailableTimeSlotViewModel(int index)
{
Index = index;
_entities = Repository.GetRepository();
Days = new List<SelectListItem>();
_entities.Days.ToList().ForEach(d => Days.Add(new SelectListItem { Value = d.DayId.ToString(), Text = d.Name }));
Hours = new List<SelectListItem>();
_entities.Hours.ToList().ForEach(h => Hours.Add(new SelectListItem { Value = h.HourId.ToString(), Text = h.Name }));
}
И код в представлении, который связан с НайтиСтраницу:
Следует отметить, что если я явно задал выбранное значение в DropDownListFor, он отлично работает. Мне интересно, почему выбранное значение не связано автоматически, ссылаясь на свойство в индексе.