2
I have a modal of products, in the controller page has a get function to complete it when opening, and a post for filters and pagination. My problem is that paging is done by Url.Action("Index", new { page })
that calls the page below my modal and not the products page and if I put in place of the index my modal does not work because it will call my get method and not the post.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _PopUpProdutos(ProdutoIndexViewModel produtoIndexViewModel)
{
var _produtotipoRepository = new ProdutoTipoRepository();
var _produtogrupoRepository = new ProdutoGrupoRepository();
var _produtofamiliaRepository = new ProdutoFamiliaRepository();
var _fabricanteRepository = new FabricanteRepository();
var filiais = _filialRepository.GetAllAtivo();
var filiaisViewModels = Mapper.Map<IEnumerable<Filial>, IEnumerable<FilialViewModel>>(filiais);
var produtoTipos = _produtotipoRepository.GetAllAtivo();
var produtoTiposViewModels = Mapper.Map<IEnumerable<ProdutoTipo>, IEnumerable<ProdutoTipoViewModel>>(produtoTipos);
var produtoGrupos = _produtogrupoRepository.GetAllAtivo();
var produtoGruposViewModels = Mapper.Map<IEnumerable<ProdutoGrupo>, IEnumerable<ProdutoGrupoViewModel>>(produtoGrupos);
var produtoFamilias = _produtofamiliaRepository.GetAllAtivo();
var produtoFamiliasViewModels = Mapper.Map<IEnumerable<ProdutoFamilia>, IEnumerable<ProdutoFamiliaViewModel>>(produtoFamilias);
var fabricantes = _fabricanteRepository.GetAllAtivo();
var fabricantesViewModels = Mapper.Map<IEnumerable<Fabricante>, IEnumerable<FabricanteViewModel>>(fabricantes);
var produtosFilters = Mapper.Map<ProdutoFilterViewModel, ProdutoFilter>(produtoIndexViewModel.Filters);
var produtos = _produtoRepository.GetAllFilterAtivo(produtosFilters);
var produtoDetailsViewModels = Mapper.Map<IEnumerable<Produto>, IEnumerable<ProdutoDetailsViewModel>>(produtos);
if (!produtoIndexViewModel.IsPageChange)
{
produtoIndexViewModel.Page = 1;
}
int pageSize = WebConfig.PageSize;
int pageNumber = (produtoIndexViewModel.Page ?? 1);
produtoIndexViewModel.Filters.Filiais = filiaisViewModels;
produtoIndexViewModel.Filters.ProdutoTipos = produtoTiposViewModels;
produtoIndexViewModel.Filters.ProdutoGrupos = produtoGruposViewModels;
produtoIndexViewModel.Filters.ProdutoFamilias = produtoFamiliasViewModels;
produtoIndexViewModel.Filters.Fabricantes = fabricantesViewModels;
produtoIndexViewModel.Results = produtoDetailsViewModels.ToPagedList(pageNumber, pageSize);
ModelState.Remove("IsPageChange");
produtoIndexViewModel.IsPageChange = false;
ViewBag.NavigationMenuPrimary = NavigationMenuPrimary;
ViewBag.NavigationMenuSecondary = NavigationMenuSecondary;
ViewBag.NavigationMenuTertiary = NavigationMenuTertiary;
return PartialView("_PopUpProdutos", produtoIndexViewModel);
}