Help with search method and pagedList C # MVC

0

That such a friend I turn to you again to solve a problem that I think is simple but I could not find the solution.

1.- It turns out that I have a actions result in the following way.

 public ActionResult searchRequerimiento(searchRequerimiento model)
    {
        var pageIndex = model.Page ?? 1;
        var itemPorPagina = 40;
        ViewBag.pageno = pageIndex;
        ViewBag.itemperpage = itemPorPagina;

        #region busqueda de requerimientos
        DataTable objDataTable = new DataTable("tblSongs");

        objDataTable.Columns.Add("Ejercicio");
        objDataTable.Columns.Add("NoLicitacion");
        objDataTable.Columns.Add("Descripcion");
        objDataTable.Columns.Add("TipoProcedimiento");
        objDataTable.Columns.Add("ClavesRequeridas");
        objDataTable.Columns.Add("PiezasRequeridas");
        objDataTable.Columns.Add("MontoRequerido");
        objDataTable.Columns.Add("ClavesAsignadas");
        objDataTable.Columns.Add("PiezasAsignadas");
        objDataTable.Columns.Add("MontoAsignado");
        DataRow myDataRow;

        var partidaSelec=0;

        foreach (int item in model.itemPartidas)
        {
            if(item!=0)
            {
                partidaSelec = partidaSelec + item;
            }             
        }

        var _filtrado = from t in db.MtoRequerimientos
                        where (model.MtoProcedimientoId == 0 || t.MtoProcedimientoId == model.MtoProcedimientoId) &&
                        (model.Gpo == null || t.Gpo.Contains(model.Gpo)) &&
                        (model.Gen == null || t.Gen.Contains(model.Gen)) &&
                        (model.Esp == null || t.Esp.Contains(model.Esp)) &&
                        (model.Descripcion == null || t.Descripcion.Contains(model.Descripcion)) &&
                        (partidaSelec == 0 || model.itemPartidas.Contains(t.MtoRequerimientoId))                            
                        select t;


        Session["ResumenProcedimientos"] = objDataTable;

        model.result_MtoRequerimientos = _filtrado.ToPagedList(pageIndex, itemPorPagina));

        return View("_LoadResultSearchRequerimiento", _filtrado.OrderBy(r=>r.MtoProcedimiento.NoLicitacion).ToPagedList(pageIndex,itemPorPagina));

        #endregion
    }

well and a modelview as follows.

public class searchRequerimiento : MtoRequerimiento
{
    [Display(Name = "Procedimiento")]        
    public string NoLicitacion { get; set; }

    public int? Page { get; set; }

    public IPagedList<MtoProcedimiento> result_MtoRequerimientos { get; set; }


    public IEnumerable<MtoProcedimiento> ListProcedimientos { get; set; }
    public IEnumerable<MtoRequerimiento> ListPartidas { get; set; }

    public int[] itemLicitaciones { get; set; }      

    public int[] itemPartidas { get; set; }
}

What I want to ask you for help is how can I pass the query to the variable

public IPagedList<MtoProcedimiento> result_MtoRequerimientos { get; set; }

of my model, since when I want to do it in the following way

model.result_MtoRequerimientos = _filtrado.ToPagedList(pageIndex, itemPorPagina));

shows me the following error.

  

Severity Code Description Project File Line Suppression State   Error CS0266 Can not implicitly convert type 'PagedList.IPagedList' to 'PagedList.IPagedList'. An explicit conversion exists (are you missing a cast?) WebDBT C: \ Users \ Mirobiano \ Source \ Repos \ WebDBT \ WebDBT \ Controllers \ RequirementsController.cs 103 Active

I would greatly appreciate your help.

Thank you very much.

    
asked by Horacio Xochitemol 12.08.2018 в 14:32
source

1 answer

0

I think you need to cast model.result_MtoRequerimientos .

Try:

 model.result_MtoRequerimientos = (IPagedList)_filtrado.ToPagedList(pageIndex, itemPorPagina));

Another option can be (instead of using var) :

IPagedList<MtoProcedimiento> filtrado = (*tu consulta LINQ*).ToList();
    
answered by 13.08.2018 в 16:54