I'm working on a page that has a Model OrderPosition and there is a button that when pressed opens a modal of products, with a table with all products.
As I click on a line of a product the product selected in the modal is added to the OrderPage page. But this modality has pagination done this way:
Displaying
@(Model.Results.PageCount < Model.Results.PageNumber ? 0 : Model.Results.PageNumber)
of @Model.Results.PageCount
pages.
@Html.PagedListPager(Model.Results, page => Url.Action("Index", new { page }))
So when I click the modal it will go to Index of the OrderPay and not to the one of products with the next page because the resource Url.Action
will not go through post(Url.Action("/PopUpProdutos",
Can anyone help me a method that does per post?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _PopUpProdutos(ProdutoIndexViewModel produtoIndexViewModel)
Controller
publicActionResult_PopUpProdutos(){var_produtoRepository=newProdutoRepository();var_produtotipoRepository=newProdutoTipoRepository();var_produtogrupoRepository=newProdutoGrupoRepository();var_produtofamiliaRepository=newProdutoFamiliaRepository();var_fabricanteRepository=newFabricanteRepository();varfiliais=_filialRepository.GetAllAtivo();varfiliaisViewModels=Mapper.Map<IEnumerable<Filial>,IEnumerable<FilialViewModel>>(filiais);varprodutoTipos=_produtotipoRepository.GetAllAtivo();varprodutoTiposViewModels=Mapper.Map<IEnumerable<ProdutoTipo>,IEnumerable<ProdutoTipoViewModel>>(produtoTipos);varprodutoGrupos=_produtogrupoRepository.GetAllAtivo();varprodutoGruposViewModels=Mapper.Map<IEnumerable<ProdutoGrupo>,IEnumerable<ProdutoGrupoViewModel>>(produtoGrupos);varprodutoFamilias=_produtofamiliaRepository.GetAllAtivo();varprodutoFamiliasViewModels=Mapper.Map<IEnumerable<ProdutoFamilia>,IEnumerable<ProdutoFamiliaViewModel>>(produtoFamilias);varfabricantes=_fabricanteRepository.GetAllAtivo();varfabricantesViewModels=Mapper.Map<IEnumerable<Fabricante>,IEnumerable<FabricanteViewModel>>(fabricantes);varprodutos=_produtoRepository.GetAllAtivo();varprodutosDetailsViewModels=Mapper.Map<IEnumerable<Produto>,IEnumerable<ProdutoDetailsViewModel>>(produtos);intpageSize=WebConfig.PageSize;intpageNumber=1;varprodutoFilterViewModel=newProdutoFilterViewModel{Filiais=filiaisViewModels,ProdutoTipos=produtoTiposViewModels,ProdutoGrupos=produtoGruposViewModels,ProdutoFamilias=produtoFamiliasViewModels,Fabricantes=fabricantesViewModels,NomeOrderByClassName="fa fa-sort",
OrderBy = ProdutoOrderByViewModel.Default
};
var produtoIndexViewModel = new ProdutoIndexViewModel
{
Filters = produtoFilterViewModel,
Results = produtosDetailsViewModels.ToPagedList(pageNumber, pageSize),
IsPageChange = false
};
ViewBag.NavigationMenuPrimary = NavigationMenuPrimary;
ViewBag.NavigationMenuSecondary = NavigationMenuSecondary;
ViewBag.NavigationMenuTertiary = NavigationMenuTertiary;
return PartialView("_PopUpProdutos", produtoIndexViewModel);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _PopUpProdutos(ProdutoIndexViewModel produtoIndexViewModel)
{
var _produtoRepository = new ProdutoRepository();
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;
produtoIndexViewModel.Filters.NomeOrderByClassName = "fa fa-sort";
switch (produtoIndexViewModel.Filters.OrderBy)
{
case ProdutoOrderByViewModel.Nome:
produtoIndexViewModel.Filters.NomeOrderByClassName = "fa fa-sort-asc";
break;
case ProdutoOrderByViewModel.NomeDesc:
produtoIndexViewModel.Filters.NomeOrderByClassName = "fa fa-sort-desc";
break;
}
ViewBag.NavigationMenuPrimary = NavigationMenuPrimary;
ViewBag.NavigationMenuSecondary = NavigationMenuSecondary;
ViewBag.NavigationMenuTertiary = NavigationMenuTertiary;
return PartialView("_PopUpProdutos", produtoIndexViewModel);
}