Est-il possible d'utiliser un modèle générique dans ASP.NET MVC 3 (avec Razor)? Les éléments suivants échouent avec une erreur de syntaxe:
@model DtoViewModel<T> where T : IDto
Est-il possible d'utiliser un modèle générique dans ASP.NET MVC 3 (avec Razor)? Les éléments suivants échouent avec une erreur de syntaxe:
@model DtoViewModel<T> where T : IDto
En supposant que, vous souhaitez utiliser un type générique afin d'éviter les duplications de code dans chaque vue de l' ViewModel<T>
vous pouvez le faire de cette façon:
1. créer une vue pour les pièces d' ViewModel<T>
qui sont uniques à la vue
ModelView.cshtml:
@model ViewModel<specificType>
@{Layout = "~/Views/Shared/Layout.cshtml";}
<h2 class="sub-header">Specific type view</h2>
2. créer une vue pour les parties communes, qui doit être affiché dans chaque vue de l' <T>
De la grille.cshtml:
@{ var webGrid = new WebGrid(Model.PageItems); }
<div class="row" style="overflow: auto">
@webGrid.GetHtml("table-striped", mode: WebGridPagerModes.All, firstText: "First", lastText: "Last")
</div>
Puisque c'est une vue partielle, vous n'avez pas besoin de déclarer le type d' Model
de nouveau. Il utilisera simplement le modèle que vous avez définis dans la vue parent, qui la rend à la fois. La propriété IList<T> PageItems
de votre modèle, restera fortement typé avec <specificType>
.
3. N'oubliez pas de fait le rendu de la vue partielle de vos parties communes
ModelView.cshtml:
@RenderPage("~/Views/Shared/Grid.cshtml")
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.