ActionResult search result does not return all results for View PagedList

1

I noticed that in my application before View the Paged List it received all returned items from the ActionResult from the implementation of the Paged List I do not get all the results of my controller .

In summary ActionResult gets all search results but View does not get all the search results to be more specific, it does not receive the values from the var search of the clause x. CategoryCompany.Any (c => Category.CategoryNameName (company)) from the search below

Search Instruction below

var pesquisa = db.Empresa.Where(x => x.Cidade.Contains(cidade) &&
                                (x.Nome.Contains(empresa)
                                || x.CategoriaEmpresa.Any(c => c.Categoria.Nome.Contains(empresa))))
                                .ToList(); 

ActionResult Result

public ActionResult Resultado(string empresa, string cidade, int? pagina)
{
    if (string.IsNullOrEmpty(empresa) || string.IsNullOrEmpty(cidade))
    {
        return Redirect("Index");
    }

    int pageSize = 4;
    int pageNumber = (pagina ?? 1);

    ViewBag.cidade = new SelectList(db.Empresa.Select(a => a.Cidade).Distinct());
    ViewBag.empresaPesquisada = empresa;
    ViewBag.cidadePesquisada = cidade;

    var pesquisa = db.Empresa.Where(x => x.Cidade.Contains(cidade) &&
                        (x.Nome.Contains(empresa)
                        || x.CategoriaEmpresa.Any(c => c.Categoria.Nome.Contains(empresa))))
                        .ToList();

    return View(pesquisa.ToPagedList(pageNumber, pageSize));
}

View Result - Configured with Paged List

@using PagedList.Mvc;
@model PagedList.IPagedList<SigaLista.Areas.Admin.Models.Empresa>

@{
    ViewBag.Title = "Resultado da Pesquisa";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="container ajuste-rodape">
    <div class="row">
        <div class="col-md-8">
            <h4>Sua pesquisa retornou @Model.Count @(Model.Count > 1 ?  "Empresas" : "Empresa") </h4>

            @foreach (var item in Model)
            {                
                var destaque = false;
                if (!string.IsNullOrEmpty(item.Logomarca))
                {
                    destaque = true;
                }                
                <div class="media">
                    <div class="media-left media-middle">

                        @if (destaque)
                        {
                            <img src="@Url.Content(item.Logomarca)" alt="Image" style="width: 120px; height: auto;" />
                        }
                        else
                        {
                            <div class="sem-imagem"></div>
                        }

                    </div>
                    <div class="media-body">
                        <h4 class="media-heading">@Html.ActionLink(item.Nome, "Detalhes", new { id = item.Id })</h4>
                        <p>@Html.DisplayFor(modelItem => item.Telefone)</p>
                        <p>@Html.DisplayFor(modelItem => item.Endereco), @Html.DisplayFor(modelItem => item.Numero)</p>
                        <p>@Html.DisplayFor(modelItem => item.Cidade) @Html.DisplayFor(modelItem => item.Estado) @Html.DisplayFor(modelItem => item.Cep)</p>
                    </div>
                </div>
            }
        </div>    
        @Html.Partial("_PartialSideBar")
    </div>

    @*@if(Model.PageCount > 4)*@@* O ERRO ESTA AQUI *@
    @if(Model.TotalItemCount > 4)@* AQUI FUNCIONA PERFEITAMENTE *@
    {
        @:Página @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) de @Model.PageCount
        @Html.PagedListPager(Model, page => Url.Action("Resultado", new { empresa = ViewBag.empresaPesquisada, cidade = ViewBag.cidadePesquisada, pagina = page }))
    }

</div>
    
asked by anonymous 12.11.2017 / 18:32

0 answers