gpt4 book ai didi

c# - ASP.NET MVC View 数据为空

转载 作者:太空狗 更新时间:2023-10-29 22:35:29 25 4
gpt4 key购买 nike

我目前正在使用 C# ASP.NET MVC 创建一个电子商务网站,并且刚刚遇到了一个问题。在产品页面和搜索结果页面等页面上,我必须将数据列表从我的 Controller 传递到 ViewPage 并且工作正常。但是,如果 Viewdata 等于 null,则会发生空引用异常。当循环遍历 ViewData 并显示产品或评论时,它发生在 View 页面内。

//ProductController.cs

public ActionResult Products_Sub(string category, int page)
{
ViewData["Products"] = database.GetByCategory(category, page);
return View();
}

//ViewPage.cs -- 产品循环

 <ul> foreach (E_Store.Models.Product product in ViewData["Products"] as  
List<e_store.models.product>)
{%>
<li>
<img alt="<%= product.Title%>" src="<%= product.Thumbnail %>" />
<a href="/<%=product.Category %>/<%= product.SubCategory %>/<%= product.ASIN %>/1">
<%=product.Title%></a>
</li>
}%>
</ul>

Null Reference Exception 在执行到下面这段代码时发生:

  <ul> foreach (E_Store.Models.Product product in ViewData["Products"] as

我想知道的是,如果这种错误确实发生了,最好的方法是捕获它,而不是求助于检查它是否为 null 的 if 语句。

如果有人知道这样做的好方法,我真的很想知道。

最佳答案

在你的情况下,我会让你的 database.GetByCategory(category, page) 方法只返回一个空列表而不是 null,这样你的 foreach 语句就不会有任何数据循环,但你不会得到空异常。

如果您不处理列表且项目为空,我们使用

Html.Encode(ViewData.Eval("Field"))

要获取项目的 HTML 值,如果项目为 null,它将返回 ""。

关于c# - ASP.NET MVC View 数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/464220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com