MVC и Entity Framework Выбор списка
У меня есть приложение MVC, которое я пытаюсь собрать, которое требует некоторых списков выбора и выпадающих списков.
Итак, у меня есть следующие модели ....
public class Task
{
public int ID { get; set; }
public string Title { get; set; }
......
public virtual ICollection<Monitor> Monitors { get; set; }
public virtual ICollection<Resource> Resources { get; set; }
}
public class Monitor
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public IList<Task> Tasks { get; set; }
}
public class Resource
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
.....
public IList<Task> Tasks { get; set; }
Интересно то, что когда я отображаю список задач, среди других свойств, которые отображаются нормально, мне нужно отобразить список «Мониторов» и список «Ресурсов», которые назначены для задачи в представлении «Индекс», как показано ниже.
@model IEnumerable<ResourceManager.Models.Task>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
.....
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
.....
<th>
@Html.DisplayNameFor(model => model.Monitors)
</th>
<th>
@Html.DisplayNameFor(model => model.Resources)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
.....
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
.....
<td>
@if (item.Monitors == null || item.Monitors.Count == 0)
{<span>No Monitors Assigned</span>}
else
{ string.Join(", ", item.Monitors.Select(m => string.Format("{0} {1}", m.FirstName, m.LastName))); }
</td>
<td>
@Html.DisplayFor(modelItem => item.Resources)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
</table>
А вот и контроллер ....
public ActionResult Index()
{
var tasks = from t in db.Tasks where t.IsActive == true select t;
return View(tasks);
}
Я хотел бы, чтобы список мониторов и список ресурсов отображались в виде строки в представлениях «Индекс», «Удалить» и «Подробности», т. Е. «Монитор 1, Монитор 2, Монитор 3» и «Ресурс 1, Ресурс 2, Ресурс 3».
Однако в других представлениях («Создать и изменить») я хочу, чтобы они отображались в виде списка.