【发布时间】:2013-03-29 12:56:24
【问题描述】:
我遇到了这个错误,但我不知道它是什么。我一直在寻找答案,但没有人能回答主要问题,或者我只是错过了一些东西。这是我的代码:
Connection db = new Connection();
public ActionResult Index()
{
ViewBag.query = from input in db.field
where input.ID_FIELD == 1
select new {
type = input.FIELD_TYPE
};
return View();
}
和视图方面
@foreach (var item in ViewBag.query)
{
@item.type//error here: 'object' does not contain a definition for 'type', why???
}
如果我用 where 子句做一个简单的选择,就可以了 公共行动结果索引() {
ViewBag.query = from input in db.field
where input.ID_FIELD == 1
select input.FIELD_TYPE;
return View();
}
我的问题可能是什么?我似乎有很多toturials也在做同样的事情,而且效果很好,就像我刚刚做的那样: int[] number = { 1, 2, 3, 4, 5 };
var query = from num in number
let x = num + num + num
select new {avg = x};
foreach (var item in query)
{
Console.WriteLine(item.avg);
}
这里一切正常。为什么会出现问题??
【问题讨论】:
-
ViewBag.query是FIELD_TYPE的列表,所以item=FIELD_TYPE并且它没有名为type的属性。你只需要做@item,这就是你需要的价值。 -
这行得通,但打印出来:{type = Text}。为什么?
-
因为你没有打印出值,而是一个
Type。我刚刚看到一个新的答案发布。看看 P.Brian 的回答,它将把你推向正确的方向。
标签: c# linq entity-framework asp.net-mvc-4