Сгенерировать выпадающий список из таблицы базы данных без прямой ссылки

#c# #.net #linq #asp.net-mvc-3

#c# #.net #linq #asp.net-mvc-3

Вопрос:

У меня есть 3 таблицы в базе данных, FOOD, FOODTYPE и FOODUNIT. FOOD — это ссылка на FOODTYPE с внешним ключом FoodTypeID, в то время как FOODTYPE, в свою очередь, также связан с FOODUNIT с внешним ключом FoodTypeID. В настоящее время я получил свой строго типизированный вид (FOOD), в котором отображаются все данные о продуктах питания. Я получил выпадающий список для таблицы FOODTYPE следующим образом:

 @model IEnumerable<HFMS1.Models.FOOD>
<td id="type@(item.FoodID)" class="dropdown">
    @Html.DisplayFor(modelItem => item.FOODTYPE.FoodTypeName)
</td>
  

Мне нужно сгенерировать еще один выпадающий список для FOODUNIT, но поскольку эта таблица напрямую не связана с таблицей продуктов, я понятия не имею, как я ее назову, нужно ли мне передавать ViewBag из контроллера?
На самом деле понятия не имею об этом. надеюсь, здесь можно получить некоторую помощь. ценю это.

Комментарии:

1. Почему бы не убрать заглавные буквы из имен таблиц?

2. привет, как это связано с выпадающим списком?

3. Это не связано с выпадающим списком. Это связано с вашей моделью в целом.

4. имя таблицы с заглавной буквы — это просто групповое решение, какой-либо побочный эффект?

Ответ №1:

Вам нужно создать оболочку для использования в качестве вашей модели, которая содержит как FOOD, так и FOODUNIT (если я не неправильно понял вопрос).

Так, например, создайте класс, такой как приведенный ниже:

 public class FoodViewModel
{
    public IEnumerable<FOOD> Foods { get; set; }
    public IEnumerable<FOODUNIT> FoodUnits { get; set; }
}