Я относительно новым для MVC, и я немного застрял ....MVC Как создать список из строк в таблице в DbContext
У меня есть 2 модели:
Модель сайта -
SiteID() As Integer
Name() As String
Latitude() As Double
Longitude() As Double
И модель устройства -
DeviceID() As Integer
Make() As String
Model() As String
Serial() As String
Site() As Site
Как вы можете видеть, устройство связано с сайта. То, что я пытаюсь сделать, - это в представлениях «Устройство» для «Создать и редактировать», сделать так, чтобы поле «Место» было DropDownListFor
, список которых содержит Сайты, которые существуют в таблице «Место».
Так это то, что я кладу в представлении для создания списка, который будет в выпадающем:
@ModelType TestWebApplication2.Device
@Code
ViewData("Title") = "Create"
Dim selectSite As List(Of SelectListItem)
Dim listOfSites As IEnumerable(Of TestWebApplication2.Site)
For Each item In listOfSites
selectSite.Add(New SelectListItem() With {.Value = item.SiteID, .Text = item.Name})
Next
End Code
Проблема в том, в строке
для каждого элемента в listOfSites
я получаю зеленый волнистой под listOfSites
, и он говорит, «Переменная„listOfSites“используется до того, как было присвоено значение. нуль refere исключение nce может появиться во время выполнения ».
я могу видеть мои таблицы в контексте просто отлично:
И я предполагаю, что это должно быть сделано таким образом, так как IEnumerable(Of TestWebApplication2.Site)
тип модели для представления индекса, который может перебрать For Each
просто хорошо.
Так что же мне недостает в спискеOfSites ??
спасибо!
OK. Тогда для чего должен выглядеть мой код, чтобы сделать это? – Andarta
См. Править для более подробной информации – Ric
Ну, у меня уже был контроллер с представлениями. Поэтому я прокомментировал материал в разделе «Код кода», а в DeviceController это теперь мой Create: «GET: Devices/Create Функция Create() As ActionResult Dim listOfSites = (С сайта В db.Sites Выберите сайт. Name) .ToList() Вид возврата (listOfSites) Конечная функция Но тогда в представлении «сказано, что« listOfSites не объявлен ». – Andarta