nos*_*bor 3 linq asp.net-mvc entity-framework razor asp.net-mvc-3
嗨,我尝试使用ToExpando解决方案在剃刀视图中使用匿名类.我使用此解决方案 - > Razor中的动态匿名类型导致RuntimeBinderException
我会写我做的:
我添加了一个文件Extensions.cs,其中我放了以下代码:
public static class Extensions
{
public static ExpandoObject ToExpando(this object anonymousObject)
{
IDictionary<string, object> anonymousDictionary = HtmlHelper.AnonymousObjectToHtmlAttributes(anonymousObject);
IDictionary<string, object> expando = new ExpandoObject();
foreach (var item in anonymousDictionary)
expando.Add(item);
return (ExpandoObject)expando;
}
}
Run Code Online (Sandbox Code Playgroud)我写了一个查询,在控制器方法中从数据库接收元组:
IEnumerable<dynamic> articles = (from p in db.Articles.Where(p => p.user_id == 2)
select new
{
p.article_id,
p.title,
p.date,
p.category,
AverageScore = db.Articles_Scores
.Where(o => o.user_id == p.user_id && p.article_id == o.article_id)
.Average(m => m.score)
}).AsEnumerable()
.Select(r => r.ToExpando());
int ii = 0;
foreach(var it in articles) {
// HERE I CAN READ EVERYTHING
ii = it.article_id;
}
return View(articles);
Run Code Online (Sandbox Code Playgroud)在视图中我声明了一个模型:
@model IEnumerable<dynamic>
Run Code Online (Sandbox Code Playgroud)我试着得到每个元组:
@foreach (dynamic item in Model) {
// some code
@item.article_id // HERE IS EXCEPTION
}
Run Code Online (Sandbox Code Playgroud)在foreach行中我得到了一个例外:
RuntimeBinderException:'System.Dynamic.ExpandoObject'不包含'article_id'的定义
我做错了什么?
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |