MVC et Entity Framework Liste de sélection

J'ai un MVC application que je suis en train de mettre ensemble et qui nécessite un certain sélectionner des listes et des listes déroulantes.

Donc, j'ai les modèles suivants....

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; }

La partie intéressante est que lorsque j'affiche une liste de tâches, parmi les autres propriétés d'affichage très bien, j'ai besoin d'afficher une liste de 'les Moniteurs' et une liste de Ressources qui sont affectées à la tâche dans la vue Index illustré ci-dessous.

@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>

Et ici, c'est le contrôleur....

    public ActionResult Index()
{
var tasks = from t in db.Tasks where t.IsActive == true select t;
return View(tasks);
}

J'aimerais que la liste de Moniteurs et de la liste de Ressources pour afficher une chaîne de caractères sur l'Index, les Supprimer et les Détails de Vues c'est à dire "Moniteur 1, le Moniteur 2, 3 de Moniteur" et "Ressource 1, Ressource 2 Ressource 3'.

Cependant sur les autres vues (Créer et Modifier), je veux qu'ils apparaissent comme un choix de la liste.

  • Où voulez-vous stocker le Moniteur sélectionné ou une Ressource?
  • J'ai une table pour les Moniteurs, les Tâches et les Ressources avec la croix-lien de tables pour TaskMonitor et TaskResources
InformationsquelleAutor Jay Davis | 2013-07-30