Je suis en train de créer une application ASP.NET MVC 2. Je veux passer des données à une vue depuis un contrôleur. Je suis capable de le transmettre quand il n'y a qu'une seule structure de données. Dans le contrôleur:ASP.NET MVC passant plusieurs instances de données du contrôleur à afficher
private ArticlesDBEntities _db = new ArticlesDBEntities();
public ActionResult Articles()
{
return View(_db.ArticleSet.ToList());
}
et dans la vue, je réitérait sur la liste comme ceci:
<div id="demo1">
<% foreach (var item in Model) { %>
<ul>
<li id="<%= Html.Encode(item.Id) %>">
<a href="#"><%= Html.Encode(item.Title) %></a>
<ul>
<li id="phtml_2">
<a href="#">Child node 1</a>
</li>
<li id="phtml_3">
<a href="#">Child node 2</a>
</li>
</ul>
</li>
</ul>
<% } %>
</div>
(les nœuds enfants sont, pour des raisons de test en ce moment, n'ont pas un rôle réel)
Cependant, je veux maintenant gérer un scénario lorsqu'un utilisateur essaie d'accéder à Home/Articles/Id, et non seulement passer la liste d'articles (utilisée pour remplir un jsTree), mais aussi l'article lui-même, afin que je puisse montrer aussi bien. Cependant, quand j'ai essayé de créer un objet ViewData comme ceci:
public ActionResult Articles()
{
ViewData["articlesList"] = _db.ArticleSet.ToList();
return View();
}
Je ne pouvais pas savoir comment parcourir dans la vue.
merci beaucoup! mais comment exactement "peupler ce modèle de vue" dans le contrôleur? –
Ok, j'ai réussi à peupler le modèle de vue. Cependant, j'essaie alors d'y accéder dans la vue, mais quand j'écris "Model", l'intellisense ne me permet pas de choisir "Article" ou "Articleset". Ai-je manqué un #include ou "using" ou un <@page ...> dans la vue ou ailleurs? –
Ok, ajouté l'héritage = "..." et maintenant ça marche! :-) –