C# 传入字典的模型项的类型为';System.Data.Entity.Infrastructure.DbQuery
我想从数据库中获取记录,其中hidden=false,id在浏览器中。请查看我的代码并为我修复,非常感谢(我搜索了,但无法修复我的错误)。 我的行动:C# 传入字典的模型项的类型为';System.Data.Entity.Infrastructure.DbQuery,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我想从数据库中获取记录,其中hidden=false,id在浏览器中。请查看我的代码并为我修复,非常感谢(我搜索了,但无法修复我的错误)。 我的行动: public ActionResult Detail(int id = 0) { var item = db.Destinations.Where(i=>i.Hidden==false && i.Id==id); if (item==null) {
public ActionResult Detail(int id = 0)
{
var item = db.Destinations.Where(i=>i.Hidden==false && i.Id==id);
if (item==null)
{
return HttpNotFound();
}
return View(item);
}
我的看法是:
@model vtt.Models.Destination
@{
ViewBag.Title = "Detail";
}
<div class="white">
<h1>@Model.Name</h1>
@Html.Raw(Model.Description)
</div>
当前,您试图传入一个模型,该模型是一个查询,而您的视图需要一个模型对象。目前,您对空值的检查也是毫无意义的,
Where
的结果永远不会是null
。。。这只是一个疑问
相反,您应该使用SingleOrDefault
,它*执行查询,得到一个值:
var item = db.Destinations.SingleOrDefault(i => !i.Hidden && i.Id == id);
现在,检查空值将非常有用(因为如果没有结果,
SingleOrDefault
将返回null
),并且该类型对于视图来说是正确的。当前您正试图传入一个作为查询的模型,而您的视图需要一个单一的模型对象。目前,您对空值的检查也是毫无意义的,Where
的结果永远不会是null
。。。这只是一个疑问
相反,您应该使用SingleOrDefault
,它*执行查询,得到一个值:
var item = db.Destinations.SingleOrDefault(i => !i.Hidden && i.Id == id);
现在,检查空值将非常有用(因为如果没有结果,
SingleOrDefault
将返回null
),并且该类型对于视图来说是正确的。当前您正试图传入一个作为查询的模型,而您的视图需要一个单一的模型对象。目前,您对空值的检查也是毫无意义的,Where
的结果永远不会是null
。。。这只是一个疑问
相反,您应该使用SingleOrDefault
,它*执行查询,得到一个值:
var item = db.Destinations.SingleOrDefault(i => !i.Hidden && i.Id == id);
现在,检查空值将非常有用(因为如果没有结果,
SingleOrDefault
将返回null
),并且该类型对于视图来说是正确的。当前您正试图传入一个作为查询的模型,而您的视图需要一个单一的模型对象。目前,您对空值的检查也是毫无意义的,Where
的结果永远不会是null
。。。这只是一个疑问
相反,您应该使用SingleOrDefault
,它*执行查询,得到一个值:
var item = db.Destinations.SingleOrDefault(i => !i.Hidden && i.Id == id);
现在检查空值将很有用(因为如果没有结果,
SingleOrDefault
将返回null
)类型对于视图是正确的。错误消息不是自解释的吗?错误消息不是自解释的吗?错误消息不是自解释的吗?错误消息不是自解释的吗?非常感谢Jon Skeet,我就这些。非常感谢Jon Skeet,我就这些。非常感谢Jon Skeet,这就是我的全部。非常感谢乔恩·斯基特,这就是我的全部。