Я работаю с некоторыми бизнес-объектами, которые связаны друг с другом своими свойствами. Например, я загружаю объект «Entry» из хранилища данных и связываю его с объектами «User» через свойства Author и Editor.
class Entry{
public User Author { get; set; }
public User Editor { get; set; }
}
class User{
public string Username { get; set; }
}
Когда я создаю новый объект Entry с использованием MVC2, я хочу предоставить раскрывающийся список со списком доступных пользователей. Я заблудился относительно того, какой путь будет лучшим.
Сейчас я иду по пути использования звонков EditorFor, но у него есть свои проблемы. Например, я могу сделать следующее:
<%= Html.EditorFor(model => model.Author) %>
А затем создайте элемент управления представлением в Shared / EditorTemplates, который представляет его как раскрывающийся список (возможно?), Но похоже, что он повредит все изменения класса User. Например, если я пытаюсь редактировать объект User напрямую, я хочу иметь возможность обновлять поля, связанные с этим классом. Поэтому мне нужно, чтобы шаблоны редактора были контекстно-зависимыми.
Я также попытался пойти по пути создания формы вручную:
<%= Html.DropDownFor(model => model.Author, (IEnumerable<SelectListItem>)ViewData["Users"]) %>
Но это казалось грязным, и я запутался в том, как значения сериализуются обратно в объект User из SelectListItem.
Любая помощь приветствуется. Я уверен, что эта проблема уже была решена ранее, но у меня были проблемы с получением большей части информации из моих запросов.