У меня есть две таблицы: Площадь и Босс.
В области есть Босс, он имеет отношение внешнего ключа к Area.IDBoss, и это Boss.ID. Надеюсь, я правильно объясняю свой вопрос. : P
На данный момент я могу вручную ввести число в текстовое поле, и оно сохраняется правильно, я также могу правильно отобразить имя, потому что я использую Entity Framework, что-то вроде "item.Boss.ID" в представлении работает отлично.
Мне действительно нужно отобразить DropDownList.
Я предполагаю, что мне нужно вернуть набор доступных строк "Boss" из моей базы данных, используя словарь ViewData [], но я честно застрял. : D
Есть предложения? Это очень простой вариант использования, поэтому, надеюсь, я не буду тратить на это слишком много времени. Если вам, ребята, нужен какой-то код с моей стороны, просто скажите, но я сомневаюсь, что это поможет для такого простого вопроса.
Как всегда, этот сайт просто фантастический, спасибо за помощь.
Edit:
Может быть, размещение кода поможет. Прямо сейчас я получаю эту ошибку:
Редактировать 2:
Отредактировано с использованием более нового кода, который все еще не работает.
Нет элемента типа ViewData
«IEnumerable», который имеет
ключ 'Jefes'.
А вот код:
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.IDJefe) %>
</div>
<div class="editor-field">
<%: Html.DropDownList("Jefes", (SelectList)ViewData["Jefes"]) %>
<%--<%: Html.TextBoxFor(model => model.IDJefe) %>--%>
<%: Html.ValidationMessageFor(model => model.IDJefe) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Nombre) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Nombre) %>
<%: Html.ValidationMessageFor(model => model.Nombre) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
JefeRepository jefeRepo = new JefeRepository();
var jefes = jefeRepo.FindAll().OrderBy(x => x.Nombre);
var jefeList = new List<SelectListItem>();
foreach (var jefe in jefes)
{
jefeList.Add(new SelectListItem()
{
Text = jefe.Nombre,
Value = jefe.ID.ToString()
});
}
ViewData["Jefes"] = jefeList.AsEnumerable();
Кстати, я перевел некоторые имена переменных с испанского на английский, чтобы они имели больше смысла, извините за путаницу.
Редактировать 3:
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Я просмотрел каждую строку кода, но он просто не работает.