Asp.net mvc 3 MVC3 where子句中的多个条件
我的控制器中有以下内容Asp.net mvc 3 MVC3 where子句中的多个条件,asp.net-mvc-3,razor,null,Asp.net Mvc 3,Razor,Null,我的控制器中有以下内容 var workshop = registerDB.Workshops.Single(w => w.WorkshopID == id); ViewBag.Enrollments = registerDB.Carts.Where(x => x.Username.Equals(User.Identity.Name)); 在我看来 @{ //var carts = Model.Carts.Where(x => x.Username.Equals(U
var workshop = registerDB.Workshops.Single(w => w.WorkshopID == id);
ViewBag.Enrollments = registerDB.Carts.Where(x => x.Username.Equals(User.Identity.Name));
在我看来
@{
//var carts = Model.Carts.Where(x => x.Username.Equals(User.Identity.Name));
var carts = ViewBag.Enrollments;
var timeSlot = Model.TimeSlot;
}
@{
foreach (var item in carts)
{
if (item != null)
{
if (timeSlot == item.Workshop.TimeSlot)
{
<h3>@timeSlot</h3>
}
}
else
{
<h3>Does not Exist</h3>
}
}
}
尝试在控制器中调用.ToList()
,以急切地获取结果:
ViewBag.Enrollments = registerDB
.Carts
.Where(x => x.Username.Equals(User.Identity.Name))
.ToList();
您正在检查
项!=空
但不是该item.Workshop!=在尝试使用它之前为空。这可能就是错误所在,但我不知道为什么它会引发invalidooperationexception
而不是NullReferenceException
尝试:
if(item!=null&&item.Workshop!=null)
{
if(时隙==项目.车间.时隙)
{
@时隙
}
}
您能在您的模型中加入单个调用吗:
workshops workshop = registerDB.Workshops.Single(w => w.WorkshopID == id);
然后在控制器中设置ViewBag:
try
{
ViewBag.Enrollments = workshop.Carts.Where(x => x.Username.Equals(User.Identity.Name));
}
catch
{
ViewBag.Enrollments = "There are no results";
}
@Edgaroching'-不确定。如果用户没有做出任何选择,如何检查ViewBag.Enrollments是否已注册?
workshops workshop = registerDB.Workshops.Single(w => w.WorkshopID == id);
try
{
ViewBag.Enrollments = workshop.Carts.Where(x => x.Username.Equals(User.Identity.Name));
}
catch
{
ViewBag.Enrollments = "There are no results";
}