【发布时间】:2015-10-26 15:09:03
【问题描述】:
您好,我想弄清楚为什么只有当我尝试编辑数据库中的记录时才会出现此错误,但代码与编辑更新代码无关。此代码用于运行存储过程,该存储过程用于提取组并将名称放入列表中。如果您添加一条记录或添加多条记录,它会起作用。
List<String> groups = new List<String>();
groups = db.spGetCurrentInsuranceGroups().ToList();
/* This where the stored procedure is being called to populate the insurance groups*/
foreach (String group in groups)
{
<option value="@group">@group</option>
}
这里是添加新记录和编辑的图像。它填充下拉列表。但是如果你点击选择然后它想给出一个问题。
如您所见,如果您点击提交以更新记录,它会填充给它带来问题的保险部分。
这是我得到的错误页面
“/”应用程序中的服务器错误。对象引用未设置为 对象的实例。描述:发生未处理的异常 在当前 Web 请求执行期间。请查看 堆栈跟踪以获取有关错误及其位置的更多信息 源于代码。
异常详细信息:System.NullReferenceException:没有对象引用 设置为对象的实例。
来源错误:
第 202 行:foreach (var group in groups.OfType().ToList())
堆栈跟踪:
[NullReferenceException: 对象引用未设置为 对象。] System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +271 System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 执行器) +112 System.Web.WebPages.WebPage.ExecutePageHierarchy() +128 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +131
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +178
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.6.81.0
【问题讨论】:
-
空引用异常意味着您的程序在需要非空值时遇到空值。 db.spGetCurrentInsuranceGroups() 实际返回的是什么?
-
存储过程以字符串形式返回组的名称。但是就像我说的那样,如果我正常运行它并调出页面以添加记录,它就可以工作,但只有在我尝试编辑现有记录时才会出现该错误。
标签: c# asp.net asp.net-mvc razor