Я использовал для добавления Ajax .BeginForm в MVC5 с TargetedId, чтобы сделать функциональность для поиска с частичным просмотром без перезагрузки всей страницы. Поэтому, пожалуйста, мне нужна помощь, чтобы сделать это. Net Core 3 не доступен мои действия с индексом контроллера и фильтрами
// GET: Store
public async Task<IActionResult> Index(List<int> categorySearch, int page = 1)
{
var items = await _context.ItEntity.Include(i => i.CaRelation).Include(i => i.FaRelation).Include(i => i.ITImages).ToListAsync();
var VMItems = new List<ShopVM>();
items.ForEach(it => VMItems.Add(new ShopVM
{
ItemsId = it.Id,
ITName = it.ITName,
Description = it.Description,
CaRelation = it.CaRelation,
CategoryId = it.CategoryId,
FaRelation = it.FaRelation,
FactoryId = it.FactoryId,
Image = it.ITImages.FirstOrDefault().ImName
}));
ViewBag.categoryList = _context.CatEntity.Select(p => new Category
{
Id = p.Id,
CaName = p.CaName,
IsSelect = categorySearch.Count == 0 ? false : categorySearch.Contains(p.Id)
});
var model = PagingList.Create(VMItems.AsQueryable().AsNoTracking().OrderByDescending(s => s.ItemsId), 20, page);
return View(model);
}
// GET: Filter
[HttpGet]
public async Task<PartialViewResult> Filter(List<int> categorySearch, int page = 1)
{
var items = await _context.ItEntity.Include(i => i.CaRelation).Include(i => i.FaRelation).Include(i => i.ITImages)
.Where(x => categorySearch.Contains(x.CategoryId) || categorySearch.Count == 0).ToListAsync();
var VMItems = new List<ShopVM>();
items.ForEach(it => VMItems.Add(new ShopVM
{
ItemsId = it.Id,
ITName = it.ITName,
Description = it.Description,
CaRelation = it.CaRelation,
CategoryId = it.CategoryId,
FaRelation = it.FaRelation,
FactoryId = it.FactoryId,
Image = it.ITImages.FirstOrDefault().ImName
}));
var model = PagingList.Create(VMItems.AsQueryable().AsNoTracking().OrderByDescending(s => s.ItemsId), 20, page);
var myViewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary()) { Model = model };
PartialViewResult result = new PartialViewResult()
{
ViewName = "_SearchPro",
ViewData = myViewData,
};
return result;
вот мое частичное представление
в индексе я получаю продукты частично из
<form id="ProductsFilter" asp-controller="Store" asp-action="Index" method="get">
<div class="col-lg-10 row">
@Html.Partial("_SearchPro")
</div>
</form>
, но без те же css и bootstrap каждый продукт идет в ряд с 12 столбцами и скрыт, я вижу их только для проверки.