Ich bin neu in Asp Net und ich habe ein paar Fragen. Also mache ich ein Beispiel, um zu verstehen, dieses Beispiel gibt eine TempData mit dem Übereinstimmungsnamen in der Liste zurück. Die Liste enthält 3 Objekte, die im actionResult-Index erstellt wurden.Warum erhalte ich eine NullReference Exception in TempData
[HttpPost]
public ActionResult Buscar(String NomeP)
{
int i;
List<Models.Produto> Lista = null;
Lista = Session["SSLista"] != null ? (Session["SSLista"] as List<Models.Produto>) : new List<Models.Produto>();
for (i = 0; i< Lista.Count; i++) {
if (Lista[i].Nome.Equals(NomeP)) {
TempData["Found"] = Lista[i];
}
}
return RedirectToAction("Produto", "Home");
}
Wenn ich versuche, die Rückkehr zu zeigen ich diese Ausnahme von Nullreference erhalten, aber die TempData einige Daten im Gegenzug hat.
<% Html.EndForm(); %> <%
if (TempData["Found"] != null)
{ %>
<%
foreach (var prod in (TempData["Found"] as List<MvcApplication2.Models.Produto>))
{
%>
<br />
<h2>Produtos</h2>
<label>
Nome: <%=prod.Nome %>
</label>
<label>
Descrição <%= prod.Descricao%>
</label>
<label>
Preço: <%= prod.Valor_unitario%>
</label>
<label>
ID: <%= prod.Id%>
</label><br>
<% }
}
Das Bild unten zeigen ist, dass TempData einige Daten, aber ich kann in der foreach konvertieren.
Keine Ahnung, warum Sie eine falsche Antwort akzeptiert hat, die nichts mit Ihrem Problem zu tun hat. TempData ["Found"] = Lista [i]; 'fügt TempData (keine Sammlung) ein einzelnes' Produto' hinzu. Dann in der Ansicht, die Sie versuchen und werfen einen einzigen 'Produto' zu' Liste 'was natürlich nicht und seine' null' –