Первый параметр в «DropDownListFor» предназначен для привязки, и это переопределяет выбранное вами значение.Вы используете объект «Project», но вместо этого вам придется использовать «Id» проекта.
@Html.DropDownListFor(model => model.Instance.Project.Id,
new SelectList(Model.AllProjects, "Id", "Name", Model.Instance.Project.Id ))
Если вы не хотите использовать это поведение, используйте помощник DropDownList.
Обновление (в ответ на ваш комментарий):
Есть способ заставить следующую работу.
@Html.DropDownListFor(model => model.Instance.Project, new SelectList(Model.AllProjects, "Id", "Name", Model.Instance.Project.Id ))
Вам нужно будет переопределить "Функция ToString () "в классе« Project »возвращает значение« Id ».
public class Project : Entity
{
public virtual string Name { get; set; }
public virtual string Comments { get; set; }
public virtual IList<Activity> Activities { get; set; }
public override string ToString()
{
return Id.ToString();
}
}
Опять же, другим вариантом будет использование помощника DropDownList.
@Html.DropDownList("Instance.Project",
new SelectList(Model.AllProjects, "Id", "Name", Model.Instance.Project.Id ))
Thisбудет производить тот же HTML.