Я пытаюсь привязать свойство IList к DropDownListFor (). Список отображается, данные из раскрывающегося списка успешно отправляются в базу данных, однако не отображаются при повторной загрузке страницы. Правильный вариант не выбран на основе значения ClubTeamID. Всегда выбирается значение по умолчанию (-). Остальные поля ввода, кнопки и флажки на странице отлично работают при сохранении и перезагрузке. Что-то еще мне не хватает?
Мое мнение (соответствующий код):
@model IList<SolidarityContract>
...
@if (Model != null)
{
for (var i = 0; i < Model.Count; i++)
{
...
<td>@Html.DropDownListFor(model => Model[i].ClubTeamID,Model[i].TeamsList, "--", htmlAttributes: new { @class = "form-control" })</td>
<td>@Html.EditorFor(model => Model[i].Club, new { htmlAttributes = new { @class = "form-control input-sm" } })</td>
...
}
}
Мой класс (соответствующие свойства):
public class SolidarityContract{
public SolidarityContract()
{
TeamsList = SelectLists.TeamsGet();
}
public SelectList TeamsList { get; set; }
public Nullable<long> ClubTeamID { get; set; }
...
}
Список выбора:
public static SelectList TeamsGet()
{
using (var db = new OlympiacosPlayerMSDBEntities())
{
IEnumerable<CustomSelectList> cpd = (from comp in db.Team
where comp.IsDeleted == false
select new CustomSelectList
{ ID = comp.ID.ToString(),
Description = (comp.TeamCategoryID==1?"ΠΕΛ: ":"ΠΡΟ: ") +comp.Name }).ToList<CustomSelectList>().OrderBy(c => c.Description);
return new SelectList(cpd, "ID", "Description");
}
}
ClubTeamID
(и всегда выбирается первый вариант)? - person   schedule 22.03.2017EditorTemplate
в дублировании лучше всего, но вы можете изменить свой метод наpublic static SelectList TeamsGet(int selected) { ..... return new SelectList(cpd, "ID", "Description", selected); }
, чтобы создать новыйSelectList
для каждогоSolidarityContract
в коллекции (передав емуClubTeamID
) - person   schedule 22.03.2017