Прежде всего, я знаю, что этот вопрос задавался много, много раз. Я прочитал бесчисленные статьи и ответы на переполнение стека. Я пытался разобраться с этой проблемой в течение четырех дней и думаю, что мне нужна помощь, если кто-то не против. База данных сотрудников имеет поле с именем «DisplayName» - вторая база данных связана с первой, и они отлично работают вместе. Я могу назвать две базы данных идеально в другом приложении.
Вы можете видеть на картинке Страница индекса , что у меня есть список людей. Я хочу раскрывающийся список ниже, в котором перечислены все отображаемые имена в базе данных, чтобы сотрудники могли добавлять себя в список. Вы увидите раскрывающийся список на изображении, но он не заполнен.
Кажется простым. Но Боже. Часть проблемы, с которой я столкнулся, состоит в том, что мой домашний контроллер уже имеет функцию для заполнения списка на картинке, поэтому я не могу сделать еще одну на этой странице. Я перепробовал много предложений на многих сайтах. Я получаю IEnumerable error или отображаю ссылки на ошибки ....
Вот мой контроллер (опять же - в нем нет ничего, что помогло бы раскрытию):
namespace SeatingChart.Controllers
{
public class HomeController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();
// GET: Employee
public ActionResult Index()
{
var lists = db.BreakModels
.Include("Employee")
.Include("TimeEntered")
.Include("TimeCleared")
.Include("DisplayName")
.Select(a => new HomeIndexViewModels
{
Employee = a.Employee,
DisplayName = a.EmployeeModels.DisplayName,
TimeEntered = a.TimeEntered,
TimeCleared = a.TimeCleared.Value,
Id = a.EmployeeModels.Id,
});
return View(lists);
}
Просмотр:
@model IEnumerable<SeatingChart.Models.HomeIndexViewModels>
@{
Layout = null;
}
@Html.Partial("_Header")
<div class="container_lists">
<div class="container_break col-md-8">
<h5 style="text-align:center">Break List</h5>
<table class="table-bordered col-lg-12">
@if (Model != null)
{
foreach (var item in Model)
{
if (item.TimeCleared == null)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.DisplayName)
</td>
<td>
 BV
</td>
<td>
 @item.TimeEntered.ToString("HH:mm")
</td>
</tr>
}
}
}
</table>
@using (Html.BeginForm())
{
<div class="row site-spaced">
<div class="col-3">
@Html.DropDownList("DisplayName", new SelectList(new List<string>() { "---Dispatcher---" }), new { @class = "required " })
</div>
</div>
<div class="col-3">
<input type="submit" value="Submit" class="site-control" />
</div>
}
</div>
</div>
ViewModel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
namespace SeatingChart.Models
{
public class HomeIndexViewModels
{
//Break Model
public int BreakId { get; set; }
public int Employee { get; set; }
public DateTime TimeEntered { get; set; }
public DateTime? TimeCleared { get; set; }
//Employee Model
public int Id { get; set; }
public string DisplayName { get; set; }
public string DisplayNames { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool NotActive { get; set; }
public int Force { get; set; }
public string EmployeeList { get; set; }
}
}
Надеюсь, это достаточно ясно. Я пробовал так много разных способов с таким большим количеством кода - ошибки разные со всем, что я пробовал.
Заранее спасибо за ваше терпение и помощь!