Теперь я звоню объект в меню _layout с PartialView
как эти:Лучшая практика для вызова различных списков
Контроллер:
public async Task<ActionResult> GetChemicalsList()
{
var model = db.ProductsList.Where(x => x.Subcategory.Name == "Chemicals").ToList();
return PartialView(@"~/Views/Product/_ChemicalPartialView.cshtml", model);
}
Частичный вид:
@model IEnumerable<Product>
@foreach (var item in Model)
{
<a href="@Url.Action("Index", "Product", new { id= item.ProductId})">@Html.DisplayFor(modelItem => item.Name)</a>
}
Layout View:
<div class="col-xs-6 col-sm-2">
@Html.Action("GetChemicalsList", "Product")
</div>
Но у меня есть другие продукты с другой подкатегорией для добавления, поэтому мне нужно сделать контроллер и другой вызов в представлении для каждого из них, потому что у каждого из них есть другой запрос на контроллер: например, я делаю еще один для аксессуаров, поэтому мой контроллер быть как эти одно:
Аксессуары контроллер:
public async Task<ActionResult> GetAccesoriesList()
{
var model = db.ProductsList.Where(x => x.Subcategory.Name == "Accesories").ToList(); // diferent Query
return PartialView(@"~/Views/Product/_ChemicalPartialView.cshtml", model);
}
_layout Посмотреть
<div class="col-xs-6 col-sm-2">
@Html.Action("GetAccesoriesList", "Product")
</div>
ли правильный способ сделать это, или есть другой способ лучше?
Заранее благодарен!
У вас может быть только один метод с параметром 'Subcategory.Name' say' public async Task Fetch (строка category) 'и использовать' @ Html.Action («Fetch», Product », new { category = "Принадлежности") ' –