Допустим, у меня есть список продуктов.Я хочу отобразить список продуктов от определенного поставщика на странице поставщика.Я также хочу показать полный список продуктов на странице продуктов.Для этого я использую частичное представление
@Html.Partial("_ProductList", Model.Products)
Частичное представление - это просто базовая таблица с несколькими столбцами.
В одном из этих столбцов отображается имя поставщика.На странице продуктов это полезно, но показывать, когда пользователь уже находится на странице поставщика, показывать имя поставщика для каждого отдельного продукта бесполезно.
Что я хочу знать, так это:рекомендуемый способ передачи такого рода конфигурации макета в частичное представление?
Использовать ли аргумент ViewData?
@Html.Partial("_CallList", Model.Calls, new ViewDataDictionary{{"HideCompany", true}})
При выполнении этого я обнаружил, что мне нужно выполнить много приведения типов.в моем частичном представлении, и это действительно портит мои шаблоны.
@if (!(bool)ViewData["HideCompany"])
{
<td>@Html.DisplayFor(modelItem => item.Name)</td>
}
Кроме того, если я хочу поместить свой Paginator в частичное представление, как я могу генерировать URL-адреса без указания actionName?
@Html.PagedListPager(Model, page => Url.Action("Index", new { page = page }));
Имя действия не будет одинаковым, в зависимости от того, какое представление встраивает частичное представление, поэтому это становится другой вещью, которую я должен передать частичному представлению в ViewData.
@Html.Partial("_CallList", Model.Calls, new ViewDataDictionary{{"ActionName", "Details"}, {"HideCompany", true}})
Это становится только уродливее и уродливее.
@Html.PagedListPager(Model, page => Url.Action((string)ViewData["ActionName"], new { page = page }));
В предыдущих платформах, которые я использовал, мне не нужно было указывать имя действия, оно просто использовало действие, которое в данный момент активно.
Спасибо