为什么我在TempData中收到NullReference异常

马蒂亚斯·克鲁兹(Mathias Cruz)

我是Asp Net的新手,我有一些问题。所以我举一个例子来理解,这个例子在列表中返回一个具有匹配名称的tempData。该列表在actionResult索引中创建了3个对象。

   [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");

}

当我尝试显示返回值时,我收到此NUllReference异常,但tempData有一些返回的数据。

<%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>
<% }
}

下图显示了Tempdata有一些数据,但是我可以在foreach中进行转换。

拉杰谢卡·雷迪(Rajshekar Reddy)

TempData:通常用于在一个Action方法与另一个Action方法之间传递数据,如果要将数据从控制器传递给视图,请使用ViewBag或ViewData。


无论如何,问题是您只分配Models.Produto给您的TempData

 TempData["Found"] = Lista[i];

在for循环之后,TempData只是其中包含最后一个迭代的项目,并且在您的视图中,您尝试将其强制转换为 List<Models.Produto>

foreach (var prod in (TempData["Found"] as List<MvcApplication2.Models.Produto>))

这是问题所在。

试试这个

 [HttpPost]
    public ActionResult Buscar(String NomeP)
    {
        int i;
        List<Models.Produto> Lista = null;
        List<Models.Produto> TempList = new  List<Models.Produto>(); //new variable

        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)) {
                TempList.Add(Lista[i]); // add the items to the temp list
            }
        }

      TempData["Found"] = TempList; //assign the final list to temp data
      return RedirectToAction("Produto", "Home");
}

yildizm85指出之后,我也发现了这一点。因此,所有功劳归功于他。我更新了我的答案以避免进一步投反对票。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我在DropDownListFor中的帖子中收到null异常?

来自分类Dev

为什么我在Android中收到Null Pointer异常

来自分类Dev

为什么我收到异常错误indexOutOfRangeException?

来自分类Dev

为什么我收到异常错误indexOutOfRangeException?

来自分类Dev

为什么我收到Indy EIdOSSLUnderlyingCryptoError异常

来自分类Dev

为什么我在递归 java 方法中收到“线程“main”java.lang.StackOverflowError 中的“异常”?

来自分类Dev

为什么我收到此错误“线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:1”

来自分类Dev

为什么我收到错误消息:“线程“ main”中的异常java.lang.NullPointerException”

来自分类Dev

为什么我会收到类强制转换异常?

来自分类Dev

为什么我收到异常ArgumentOutOfRangeException:参数超出范围。

来自分类Dev

为什么我收到此 Python 脚本的连接拒绝异常?

来自分类Dev

为什么我收到找不到文件的异常?

来自分类Dev

为什么我没有收到询问超时异常?

来自分类Dev

为什么我会收到此异常 (gRCP)

来自分类Dev

为什么我在运行此代码时收到异常?

来自分类Dev

放心:为什么我会收到 IllegalStateException 异常?

来自分类Dev

为什么我在Ruby中收到NoMethodError?

来自分类Dev

为什么我在Ruby中收到NoMethodError?

来自分类Dev

PresentationFramework中的NullReference异常

来自分类Dev

为什么我收到NumberFormatException

来自分类Dev

为什么我收到unsupportedSchemeError

来自分类Dev

为什么我收到 ArgumentOutOfRangeException

来自分类Dev

为什么我在跳过的队列中收到消息

来自分类Dev

为什么我在python中收到SQL语法错误

来自分类Dev

为什么我在角度2中收到“意外令牌<”错误?

来自分类Dev

为什么在我的save方法中收到此ValidationException?

来自分类Dev

为什么我在PHP中收到语法错误?

来自分类Dev

为什么我在终端中收到此“无法删除”行?

来自分类Dev

为什么我在Django中收到表单无效错误?

Related 相关文章

  1. 1

    为什么我在DropDownListFor中的帖子中收到null异常?

  2. 2

    为什么我在Android中收到Null Pointer异常

  3. 3

    为什么我收到异常错误indexOutOfRangeException?

  4. 4

    为什么我收到异常错误indexOutOfRangeException?

  5. 5

    为什么我收到Indy EIdOSSLUnderlyingCryptoError异常

  6. 6

    为什么我在递归 java 方法中收到“线程“main”java.lang.StackOverflowError 中的“异常”?

  7. 7

    为什么我收到此错误“线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:1”

  8. 8

    为什么我收到错误消息:“线程“ main”中的异常java.lang.NullPointerException”

  9. 9

    为什么我会收到类强制转换异常?

  10. 10

    为什么我收到异常ArgumentOutOfRangeException:参数超出范围。

  11. 11

    为什么我收到此 Python 脚本的连接拒绝异常?

  12. 12

    为什么我收到找不到文件的异常?

  13. 13

    为什么我没有收到询问超时异常?

  14. 14

    为什么我会收到此异常 (gRCP)

  15. 15

    为什么我在运行此代码时收到异常?

  16. 16

    放心:为什么我会收到 IllegalStateException 异常?

  17. 17

    为什么我在Ruby中收到NoMethodError?

  18. 18

    为什么我在Ruby中收到NoMethodError?

  19. 19

    PresentationFramework中的NullReference异常

  20. 20

    为什么我收到NumberFormatException

  21. 21

    为什么我收到unsupportedSchemeError

  22. 22

    为什么我收到 ArgumentOutOfRangeException

  23. 23

    为什么我在跳过的队列中收到消息

  24. 24

    为什么我在python中收到SQL语法错误

  25. 25

    为什么我在角度2中收到“意外令牌<”错误?

  26. 26

    为什么在我的save方法中收到此ValidationException?

  27. 27

    为什么我在PHP中收到语法错误?

  28. 28

    为什么我在终端中收到此“无法删除”行?

  29. 29

    为什么我在Django中收到表单无效错误?

热门标签

归档