Hi I'm getting a scary problem The controller is invoked normally, the foreach loop works fine, call the view with a List return and the @foreach start the loop and load the registers brought from the DB, but in the last interaction it brokes.
I tried to do with viewdata, viewbag, IEnumerable, List, IList every possibilities but nothing. Is somebody have any spirit and glourious solution? Thanks a lot. The variable names it´s in portuguese, but I keeped the main names like dbcontext in ingles or the standar initials.
Server Error in Application '/'. Object reference not set to an instance of an object.enter image description here Exception Details: System.NullReferenceException: Object reference not defined for an instance of an object.
----> Controller
List<Carrinho_Compras> lstCarrinho = new List<Carrinho_Compras>();
string idUsuario = Session["ID_Usuario"].ToString();
var itensCarrinho = db.CarrinhoCompras.Where(x => x.ID_Usuario == idUsuario).ToList();
if (idUsuario == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
if (itensCarrinho == null)
{
return HttpNotFound();
}
if (itensCarrinho != null)
{
ViewData["Qtd_Itens"] = itensCarrinho.Count;
decimal precoProduto = 0;
decimal total = 0;
foreach (var item in itensCarrinho)
{
Carrinho_Compras entCarrinho = new Carrinho_Compras();
entCarrinho.ID_Carrinho_Compras = item.ID_Carrinho_Compras;
entCarrinho.ID_Cadastro_Prod_Loja = item.ID_Cadastro_Prod_Loja;
entCarrinho.ID_Usuario = idUsuario;
entCarrinho.Nome_Produto = item.Nome_Produto;
entCarrinho.Modelo_Produto = item.Modelo_Produto;
entCarrinho.Preco_Produto = item.Preco_Produto;
entCarrinho.Quantidade_Produto = item.Quantidade_Produto;
entCarrinho.Descricao_Produto = item.Descricao_Produto;
entCarrinho.Caminho_Arquivo = item.Caminho_Arquivo;
precoProduto = item.Preco_Produto;
total = total + precoProduto;
entCarrinho.Total = total;
lstCarrinho.Add(entCarrinho);
}
ViewData["Total"] = total;
ViewData["CarrinhoCompras"] = lstCarrinho;
this.page.Session.Add("Total", total);
return View(lstCarrinho);
---> View
@model List<VitrineVirtual.Model.Carrinho_Compras>
<table class="table shoping-cart-table">
<tbody>
@{
var lstCarrinho = ViewData["CarrinhoCompras"] as List<VitrineVirtual.Model.Carrinho_Compras>;
var last = Model.Last();
foreach (var item in Model.Where(item => item != null))
{
if (item.Equals(last))
{
break;
}
else
{
<tr>
<td width="120">
<div class="cart-product-imitation">
<a href="#" title="Foto">
<img style="position:initial" width="90" height="90" src="@Url.Content(item.Caminho_Arquivo)" />
</a>
</div>
</td>
<td class="desc">
<h3>
<a href="#" class="text-navy">
@*<input type="text" id="nomeProduto" name="preco" class="form-control" value="@item.Nome_Produto">*@
@Html.DisplayFor(modelItem => item.Nome_Produto)
</a>
</h3>
<h4>
<a href="#" class="text-navy">
@*<input type="text" id="modeloProduto" name="preco" class="form-control" value="@item.Modelo_Produto">*@
@Html.DisplayFor(modelItem => item.Modelo_Produto)
</a>
</h4>
<p class="small">
@*<input type="text" id="descricaoProduto" name="preco" class="form-control" value="@item.Descricao_Produto">*@
@Html.DisplayFor(modelItem => item.Descricao_Produto)
</p>
<h3 class="small">
@*<input type="text" id="precoProduto" class="form-control" value="@item.Preco_Produto">*@
@Html.DisplayFor(modelItem => item.Preco_Produto))
</h3>
</td>
<td>
<div class="row">
<div class="col-sm-3 pull-left">
<input type="text" id="txtAtualizaPreco" name="preco" class="form-control">
<input type="hidden" name="preco" id="hdnAtualizaPreco" value="@item.Preco_Produto" />
@*@Html.TextBoxQtd(Request.Form["QtdProduto"], new { value = item.Preco_Produto }, new { @id = "QtdProduto", @class = "form-control", @type = "number", @text = "1" })*@
</div>
<div class="col-sm-4">
<input type="button" id="btnAtualizaPreco" value="Calcular" class="form-control text-white" style="background-color: #3872a2">
@*@Html.ActionLink("Atualiza Valor", "AtualizaPreco", "CarrinhoCompras", new { quantidade = Request.Form["QtdProduto"] }, new { @class = "btn btn-info" })*@
</div>
</div>
</td>
<td width="40">
<div class="m-t-sm">
<button id="btnExcuiItemcarrinho" class="btn-danger btn btn-xs apaga" value="Excuir"><i class="fa fa-trash"></i></button>
<input type="hidden" name="itemCarrinho" id="hdnExcluiItemCarrinho" value="@item.ID_Carrinho_Compras" />
</div>
</td>
</tr>
}
}
}
</tbody>
</table>