Asp.net mvc 4 使用匿名类型的ExpandooObject
我一直在使用ExpandoObject()解决方案来解决这个网站上讨论过的匿名类型。但我遇到了一个问题,因为我的视图无法编译。我使用了以下扩展:Asp.net mvc 4 使用匿名类型的ExpandooObject,asp.net-mvc-4,expandoobject,Asp.net Mvc 4,Expandoobject,我一直在使用ExpandoObject()解决方案来解决这个网站上讨论过的匿名类型。但我遇到了一个问题,因为我的视图无法编译。我使用了以下扩展: public static ExpandoObject ToExpando(this object anonymousObject) { IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousOb
public static ExpandoObject ToExpando(this object anonymousObject)
{
IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousObject);
IDictionary<string, object> expando = new ExpandoObject();
foreach (var item in anonymousDictionary)
expando.Add(item);
return (ExpandoObject)expando;
}
视图:
@foreach(Model.Latest中的var讨论)
{
@RouteLink(discussion.Title,“displaysession”,新的{guid=discussion.guid,urlttitle=discussion.urlttitle,action=“Display”,controller=“discussion”})
}
我的模型如下所示:
public class IndexModel
{
public IQueryable<Discussion> MostPopular { get; set; }
public ExpandoObject Latest { get; set; }
}
公共类索引模型
{
公共IQueryable最流行的{get;set;}
公共ExpandoObject最新{get;set;}
}
但是,我收到一个编译错误,表示讨论。标题:
编译器错误消息:CS1061:'System.Collections.Generic.KeyValuePair'不包含'Title'的定义,并且找不到接受'System.Collections.Generic.KeyValuePair'类型的第一个参数的扩展方法'Title'(是否缺少using指令或程序集引用?)
我错过了什么
提前谢谢
标记非常确定
ExpandoObject
的左侧需要是dynamic
以向编译器发送信号,即dynamic expando=new ExpandoObject()代码>初始化后,anonymousDictionary似乎为空。我如何解决这个问题?你能提供一个小的可复制的例子吗?
@foreach (var discussion in Model.Latest)
{
<div>
@Html.RouteLink(discussion.Title, "DisplayDiscussion", new { guid = discussion.Guid, urlTitle = discussion.UrlTitle, action = "Display", controller = "Discussion" })
</div>
}
public class IndexModel
{
public IQueryable<Discussion> MostPopular { get; set; }
public ExpandoObject Latest { get; set; }
}