L'équivalent de Html.RenderAction dans ASP.NET de Base
Je suis en train de passer à ASP.NET de Base à partir de mon petit ASP.NET MVC 4.
Dans mon MVC 4 application, j'ai un fichier de Mise en page qui utilise RenderSection:
@RenderSection("xyz", required: false)
Alors, dans mon fichier d'Index, j'ai:
@section xyz{
@{Html.RenderAction("abc");}
}
Donc, je suis à l'appel de contrôleur de l'action méthode abc() à partir de l'Index. La méthode abc() transmet un modèle objet et renvoie une vue partielle avec ce modèle.
Je ne peux pas utiliser RenderPartial comme il a besoin d'un modèle à adopter.
Maintenant, dans ASP.NET de Base, je n'ai pas RenderAction() la méthode.
Ma question est: Comment pourrais-je invoquer une méthode d'action du contrôleur à partir de mon fichier Index? Est-il un autre helper HTML pour que (bien que je ne vois pas)?
.
@Html.Action
(je sais que vous parlez RenderAction mais je crois que c'est le même concept) a été remplacer par ViewComponents. Regardez: stackoverflow.com/questions/40341386/... . Ce qui concerne.Merci pour le lien. Je suis en train de travailler sur la mise en œuvre de ViewComponents pour voir si cela woks avec mon projet.
Il semble douloureux. Il n'y a pas ConfigurationManager. Beaucoup de lecture à faire pour une petite application. Peut-il être qualifié de 'Pas de compatibilité ascendante avec ASP.NET de Base"?
asp.net core est une réécriture, la plupart, mais pas tous les concepts ont été conservés. plus simple que viewcomponents est d'utiliser une vue partielle. mais si elle a besoin de logique ou d'un modèle différent de la vue principale, comme ce qui aurait été manipulé par l'action d'un contrôleur puis ViewComponent est la chose à utiliser
OriginalL'auteur user6542823 | 2016-12-28
Vous devez vous connecter pour publier un commentaire.
J'ai finalement été en mesure de le faire avec ViewComponent. Ainsi, au lieu de RenderAction(), j'ai fait:
Où abc est une classe comme abcViewComponent. Le ViewComponent ressemble:
Ensuite, j'ai créé une vue sous un nouveau dossier " mc " Views/Home/Composants/mc/par Défaut.cshtml
Il est à noter que le nom de la vue par Défaut.cshtml et c'est la façon dont il a travaillé. Si quelqu'un a une meilleure solution, s'il vous plaît laissez-moi savoir.
Merci de me pointer dans la direction de ViewComponent.
AbcViewComponent
et tableRowClass devrait êtreTableRowClass
ainsi que le contexte.tableRows devrait êtrecontext.TableRows
. Sinon, heureux que vous avez obtenu ce travail.Merci. J'ai les noms que vous avez déclaré, c'est à dire de commencer avec une lettre majuscule dans mon projet. C'est juste pour l'exemple que j'ai mentionné petite affaire. Je vais garder cela à l'esprit lors de l'affichage dans l'avenir.
Intéressant de noter que, pour ASP.NET de Base 1.1 et supérieur, vous pouvez invoquer une vue de composant via la balise helper:
<vc:abc />
(docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components)OriginalL'auteur user6542823
Juste pour l'achèvement de la question ci-dessus, il est probablement plus sûr de passer le nom de la ViewComponent classe comme indiqué ci-dessous:
et même si il est courant d'utiliser "par Défaut" comme le résultat de l'affichage, vous pouvez également retourner le nom de la vue si différent de défaut:
OriginalL'auteur Nick Parker