我正在尝试用asp.net mvc 4和实体框架6创建一个简单的网站,用户可以登录并查看mssql表数据,也可以查看他们的个人资料。到目前为止一切正常,但是当我实现查看配置文件的方法时,每当我尝试登录时都会收到Object reference not set to an instance of an object
的错误。如果我注释掉配置文件查看部分,我可以登录&看表数据。这是我的代码,
控制器
mytestdbEntities testdb = new mytestdbEntities();
public ActionResult ProfileView(int id=0)
{
UserInfo profile = testdb.UserInfoes.Find(id);
TableAndProfile model = new TableAndProfile();
model.UserInfoo = new List<UserInfo>();
model.UserInfoo.Add(profile);
if (Session["UserID"] != null)
{
return View(model);
}
else
{
return RedirectToAction("Login");
}
}
public ActionResult UserLogin()
{
if(Session["UserBOID"] != null)
{
var mkimodel = new TableAndProfile { ExTables = dsedb.ExTables.ToList() };
return View(mkimodel);
}
else
{
return RedirectToAction("Login");
}
}
模型
public class TableAndProfile
{
public List<UserInfo> UserInfoo { get; set; }
public IEnumerable<ExTable> ExTables { get; set; }
}
查看
@model AProzLtd.Models.TableAndProfile
<ul class="nav navbar-nav navbar-right">
@if (@Session["UserID"] != null)
{
<li>Welcome, <b>@Session["UserID"].ToString()</b></li>
}
@foreach(var item in Model.UserInfoo)
{
<li><a class="btn btn-info" href="@Html.ActionLink("ProfileView", "Home", new { id=item.UserId })" target="_blank"><b>Profile</b></a></li>
}
</ul>
@foreach (var item in Model.ExTables) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.COLUMN_ONE)
</td>
<td>
@Html.DisplayFor(modelItem => item.COLUMN_TWO)
</td>
</tr>
}
MSSQL登录表数据快照
错误
对象引用未设置为对象的实例。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。
第38行:@foreach(Model.UserInfoo中的var项目)
到目前为止,我没有在表中看到任何NULL值,我没有看到任何原因导致此错误。我该如何解决这个问题?我的代码有问题吗?如果是这样,请严格要求解决方案。我们将不胜感激。 TNX。