Предполагая, что вы хотите использовать универсальный тип, чтобы избежать дублирования кода в каждом представлении ViewModel<T>
, вы можете сделать это следующим образом:
1. создать представление длячасти ViewModel<T>
, которые являются уникальными для представления
ModelView.cshtml :
@model ViewModel<specificType>
@{Layout = "~/Views/Shared/Layout.cshtml";}
<h2 class="sub-header">Specific type view</h2>
2. создают представление дляобщие части, которые должны отображаться в каждом представлении <T>
Grid.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>
Поскольку это частичное представление, вам не нужноснова объявить тип Model
.Он просто будет использовать модель, которую вы определили в родительском представлении, которое ее отображает.Свойство IList<T> PageItems
вашей модели будет строго напечатано с <specificType>
.
3 .Не забудьте визуализировать частичное представление ваших общих частей
ModelView.cshtml :
@RenderPage("~/Views/Shared/Grid.cshtml")