Voici le scenaio, j'ai un objet employé et un objet Company qui a une liste d'employés. J'ai Company.aspx
qui hérite de ViewPage<Company>
.Comment rendre une liste d'objets en utilisant DisplayFor mais depuis le contrôleur dans ASP.NET MVC?
En Company.aspx j'appeler
Html.DisplayFor(m => m.Employees).
J'ai une vue partielle Employee.ascx
qui hérite de ViewUserControl<Employee
> dans mon dossier DisplayTemplates.
Tout fonctionne bien et Company.aspx
rend le Employee.ascx
partiel pour chaque employé.
Maintenant, j'ai deux méthodes supplémentaires sur mon contrôleur appelé GetEmployees
et GetEmployee(Id)
. Dans l'action GetEmployee(Id)
, je souhaite renvoyer le balisage pour afficher cet employé, et dans GetEmployees()
je souhaite afficher le balisage pour afficher tous les employés (ces deux méthodes d'action seront appelées via AJAX).
Dans l'action GetEmployee j'appelle
return PartialView("DisplayTemplates\Employee", employee)
Cela fonctionne, bien que je préfère quelque chose comme
return PartialViewFor(employee)
qui déterminerait le nom de la vue par convention.
Anwyay, ma question est de savoir comment je devrais mettre en œuvre l'action GetEmployees()
?
Je ne veux pas créer plus de vues, parce que franchement, je ne vois pas pourquoi je devrais le faire.
J'ai essayé la suite de quoi échoue lamentablement :)
return Content(New HtmlHelper<IList<Of DebtDto>>(null, null).DisplayFor(m => debts));
Cependant, si je pouvais créer une instance d'un objet HtmlHelper dans mon contrôleur, je suppose que je pourrais le faire fonctionner, mais il se sent mal .
Des idées? Ai-je manqué quelque chose d'évident?
Cela ressemble à ce que je dois faire. Idéalement, je veux éviter de créer des vues partielles avec seulement 1 ligne de code. Je cherchais à créer un nouveau résultat d'action DisplayFor, mais encore une fois, je n'ai pas réussi à le faire fonctionner. En tout cas, merci pour votre contribution, et je suis content d'avoir pu vous aider :) – Darragh