2013-12-10 4 views
0

Я запутался в проблеме с помощником DropDownListFor.Выпадающий список, не занесенный в список MVC

Я пытаюсь назначить список значений выпадающего списка следующим образом:

Модель

public Int32 TestID {get;set;} 

public List<Int32> ListOfID {get;set;} 

public IEnumerable<SelectListItem> TimeDD {get;set;} 

Контроллер

public ActionResult Manage(int id){ 

    MyModel model = new MyModel(); 

    model.TimeDD = DropDownManager.TimeDD; 

    model.TestID = 12; 
    model.ListOfID = new List<Int32>{ 1,2,3,4,5,6,7}; 
    return View(model); 
} 

По мнению я имею следующее:

@for(int i = 0; i< ListoFID.Count; i++){ 

    <div>@Html.DropDownListFor(m=> m.TestID, Model.TimeDD)</div> 
    <div>@Html.DropDownListFor(m=> m.ListoFID[i], Model.TimeDD)</div> 
} 

Проблема, с которой я столкнулась, заключается в том, что выпадающее меню TestID работает правильно, однако ListoFID [i] не выбирает значения из раскрывающегося списка. TimeDD список раз следующим образом:

/// <summary> 
     /// The Time dropdown 
     /// </summary> 
     /// <param name="userID"></param> 
     /// <returns></returns> 
     public static IEnumerable<SelectListItem> TimeDD() 
     { 
      // new ctl 
      TimeControl ctl = new TimeControl(); 

      // get drop down 
      IEnumerable<SelectListItem> result = ctl.Select().Select(m => new SelectListItem { Text = m.Time1, Value = m.TimeID.ToString() }).ToList(); 

      // clean up 
      ctl.Dispose(); 

      return result; 
     } 

Где Time1 является '09: 30' и TimeID 1 - 48. Я не могу понять, как это происходит !! Как только я ссылаюсь на объект, он не может выбрать выпадающее меню в правильной точке.

Редактировать Также у меня есть недвижимость в моей модели под названием OpeningTimes - это список времени открытия сохраненного против компании, как показано ниже:

ComapnyID DayID StartTime EndTime 
    1   1   19   32  -- e.g. Monday 09:00 - 17:30 

Когда я Переберите время работы:

@for(int i=0; i< Model.OpeningTimes.Count; i++) 
     { 
      <tr> 

       <td> 
        @Html.DropDownListFor(m => m.OpeningTimes[i].StartTime, Model.TimeDD) 
       </td> 
       <td> 
        @Html.DropDownListFor(m => m.OpeningTimes[i].EndTime, Model.TimeDD) 
       </td> 

      </tr> 
     } 

Падение вниз по-прежнему не выбрано. Я могу подтвердить, что значения StartTime и EndTime имеют значения и имеют свойство int

+0

Когда петля через отверстие раз .... что? –

+0

@RoyDictus См. Править – CR41G14

+0

Мой ответ по-прежнему стоит. Вы пытаетесь сопоставить что-то, что не является прямым свойством Модели, которое для 'DropDownListFor' не работает. –

ответ

1

DropDownListFor требует свойства для сопоставления, а не значения. Таким образом,

@Html.DropDownListFor(m=> m.ListoFID[i], Model.TimeDD) /* the [i] kills it */ 

не будет работать.

+0

Hi посмотрите пожалуйста редактирование. Это не работает при ссылке на объект и свойство из моей модели? – CR41G14

+0

Это только против падения. Все остальные элементы, такие как текстовое поле и т. Д., Работают правильно – CR41G14

0

вместо того, чтобы делать список междунар построить его как другой

List<SelectListItem> ls = new List<SelectListItem>(); 
foreach(var temp in Model.ListOfId){ 
    ls.Add(new SelectListItem() { Text = temp, Value = temp}); 
} 
Смежные вопросы