Error registering on form

0

When you select the value and I'm going to register, it tells me an error.

  

System.ArgumentException: The value "System.Object []" is not of type "BlogWeb.Models.Compra" and can not be used in this generic collection.   Parameter name: value

Supply Controller:

public ActionResult Adiciona(AbastecimentoModel viewModel)
{
    var Produto = ckm.ConsultaValor(viewModel.NomeProdutoId);

        //*var teste = ckm.ConsultaValor(compra.VlrUnit);
        var Valor = Produto.OrderByDescending(compra => compra.VlrUnit).Last();

        viewModel.VlrUnitId = Valor.VlrUnit;

    if (ModelState.IsValid)
    {
        Abastecimento abastecimento = viewModel.CriaAbastecimento();
        dao.Adiciona(abastecimento);
        //return View();
        return RedirectToAction("Index");
    }
    else
    {
        ViewBag.Compra = compraDAO.Lista();
        ViewBag.Usuarios = usuarioDAO.Lista();
        ViewBag.Veiculo = veiculoDAO.Lista();
        return View("Form", viewModel);
    }

}

ControleKm Class:

public IList<Abastecimento> ConsultaProduto(int NomeProdutoId)
    {
        string hql = "SELECT a FROM Abastecimento a";
        IQuery query = session.CreateQuery(hql);
        return query.List<Abastecimento>();
    }
    public IList<Compra> ConsultaValor(float VlrUnit)
    {
        string hql = "SELECT * FROM Compra";
        IQuery query = session.CreateSQLQuery(hql);
        return query.List<Compra>();
    }

}

SupplyModel:

    public Abastecimento CriaAbastecimento ()
    {
        Abastecimento abastecimento = new Abastecimento()
        {
            Id = this.Id,
            Km = this.Km,
            DtAbastecido = this.DtAbastecido,
            Litro = this.Litro,
            VlrUnit = this.VlrUnit,
            TotalGasto = this.TotalGasto
        };
        if (this.AutorId != 0)
        {
            Usuario autor = new Usuario()
            {
                Id = this.AutorId
            };
            abastecimento.Autor = autor;
        }
        if (this.NumCarroId != 0)
        {
            Veiculo numcarro = new Veiculo()
            {
                Id = this.NumCarroId
            };
            abastecimento.NumCarro = numcarro;
        }
        if (this.NomeProdutoId != 0)
        {
            Compra nomeproduto = new Compra()
            {
                Id = this.NomeProdutoId
            };
            abastecimento.NomeProduto = nomeproduto;
        }
        return abastecimento;
    }
    
asked by anonymous 13.10.2017 / 19:26

1 answer

0

In some part of the code is setting BlogWeb.Models.Hashing value 2.9, possibly in

viewModel.CriaAbastecimento()

Make sure that BuildSave () is returning a valid value.

    
14.10.2017 / 02:28