Je crée mon premier site Web ASP.NET MVC 3 pour l'intranet de mon entreprise. C'est un peu cool, je joue de l'audio enregistré par notre système téléphonique et enregistré dans notre db. Cela fonctionne bien, mais j'ai du mal à trouver comment faire quelque chose qui devrait être simple. S'il vous plaît pardonner toutes les erreurs de syntaxe que j'ai probablement, c'est un brouillon. J'ai une table dans la vue Index/Apps qui liste tous les AppName, et à côté de chaque AppName je veux afficher un lien vers une autre vue, avec le texte du lien étant un Count() de tous les CallDetails associés avec cette application.Problème de lien dynamique dans un site Web MVC 3
J'ai deux classes:
public class Apps
{
public int AppId { get; set; }
public string AppName { get; set; }
}
public class CallDetail
{
public int Id { get; set; }
public int AppID { get; set; }
public byte[] FirstName { get; set; }
public byte[] LastName { get; set; }
....etc
}
un contexte pour chaque:
public class AppsContext : DbContext
{
public DbSet<Apps> Apps { get; set; }
}
public class CallContext : DbContext
{
public DbSet<CallDetail> CallDetails { get; set; }
}
une méthode de commande pour chaque:
// AppsController
private AppsContext db = new AppsContext();
public ViewResult Index()
{
return View(db.Apps.ToList());
}
// CallController method (from my current attempt)
public ActionResult CallCheck(int id)
{
bool? enabled = null;
var appcalls = from s in db.CallDetails
where s.AppID == id
&& s.Enabled.Equals(enabled)
select s;
string callnum = appcalls.Count().ToString();
return View(callnum);
}
Il affiche le AppName très bien dans cette partie de la vue ci-dessous, et je peux très bien créer un lien vers une vue pour chaque CallDetail associé. Mais je ne sais pas comment afficher les informations que je recevrais du contrôleur CallDetail puisque le modèle de View est Apps et son contrôleur, AppsController.
@model IEnumerable<myMessagePlayer.Models.Apps>
...
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.AppName)
</td>
<td class="appLink">
...
</td>
</tr>
}
J'ai essayé de nombreuses méthodes différentes, certains que je pourrais avoir appris à travailler, mais ils semblaient sémantiquement un MVC. Alors je me suis dit que je demanderais à un général "quelle est la pratique standard?" type de question.
J'ai commencé à faire quelque chose comme ça hier soir, mais je ne savais pas si ça marcherait ou si c'était "comment les choses sont faites". Je n'ai pas vu beaucoup d'exemples à construire. Donc, je garderais mes méthodes de contexte identiques pour Apps et CallDetails? –
En fait, votre contexte devra changer pour inclure les deux objets. (Ajout de ce changement à ma réponse). C'est la bonne façon de faire les choses. Vous pouvez voir des exemples de ceci sur le blog de ScottGu à http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx –
Merci, je suis Je vais donner un coup de feu. –