【发布时间】:2016-01-08 15:01:47
【问题描述】:
好的,我看到了一些与此相关的类似问题。但我无法拼凑出一个答案来解决我的特定问题。
基本上,我正在尝试从 SQL Server 获取数据以将其打印到视图上(很简单,对吗?)。问题是:我在视图上发生了许多其他事情。所以,我必须使用一个模型(我认为)。
这是我所拥有的(我对 ASP.NET MVC 非常(非常非常非常)新):
型号
这是我尝试写入的首选项(模型/类是 Registrar)
//display props
public string QUID_Disp { get; set; }
public string QU_User_Disp { get; set; }
public string Admin_User_Disp { get; set; }
public string Reg_User_Disp { get; set; }
public List<Registrar> Events { get; set; }
这是我在控制器中的 SQL 调用
if (sqlStuff.Admin == "Yes")
{
Registrar users = new Registrar();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["internet"].ConnectionString))
{
con.Open();
using (SqlCommand da = new SqlCommand("select * from Registrar_Tool_Users", con))
using (SqlDataReader reader = da.ExecuteReader())
{
while (reader.Read())
{
users.Events.Add (new Registrar { QU_User_Disp = reader["QU_User"].ToString(), QUID_Disp = reader["QUID"].ToString(), Admin_User_Disp = reader["Reg_Admin"].ToString() });
}
return View(users.Events);
}
}
并查看:
@model QUTools.Models.Registrar
//Things that are working here......
@{
foreach (var item in Model.Events)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.QU_User_Disp)
</td>
<td>
@Html.DisplayFor(modelItem => item.QUID_Disp)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_User_Disp)
</td>
</tr>
}
}
错误发生就行了
users.Events.Add (new Registrar...
然后说:
QUT.dll 中出现“System.NullReferenceException”类型的异常,但未在用户代码中处理
【问题讨论】:
-
如果这就是错误所在,那么它与 MVC 无关。在此之后您将收到一个错误,因为传递给视图(事件列表)的数据与视图模型(注册器)不匹配。对于您的 SQL 错误,请查看以下内容:stackoverflow.com/help/mcve 特别是最小部分(例如,视图代码与此错误无关)-尝试将数据加载移动到其自己的方法(甚至是类/数据层)中以分离从数据查看中加载数据,以便您可以看到错误发生的位置(在数据加载中)
-
我有个想法:学习如何调试你的代码。
-
嘿,Ramiamilu——啊似乎没有通过。仍然得到空值。我运行了 sql cmd,它提取了一些 val,没有一个是 null。
-
嘿,冰冻的,真的很好......
-
初始化 -
users.Events = new List<Registrar>();
标签: c# sql-server asp.net-mvc