我希望能够从我的视图中获取匿名类型,这是由相应的控制器建立的。根据{{3}},使用'dynamic'关键字可以在C#4.0中实现这种能力。但是,当我试图找到一个实际的例子时,我发现答案的范围从“this article”到它有点'is possible。
在我的情况下,我有一个控制器创建这个:
XElement headings = XElement.Parse(part.TagList);
var items = from heading in headings.Descendants("heading")
select new {
name = heading.Attribute("name").Value,
tags = heading.Attribute("tags").Value,
content = shapeHelper.List() //This is a dynamic object!!!
}; //can I add 'as dynamic;' here????
简而言之,如果没有静态类型,我的视图可以直接进入模型,那将是很好的:
@{
//Currently this next line returns an error saying that
//'object' contains no method 'Count'
int foo = Model.items.Count();
//This 'foreach' works.
foreach(dynamic lineItem in Model.items){
//But this does not work. Gives another "'object' has no definition for 'name'"
<p>@lineItem.name</p> }
}
可能的?
答案 0 :(得分:2)
不确定这正是您要找的,但您可以随时使用ViewBag
:
<强>控制器强>
ViewBag.Items = from heading in headings.Descendants("heading")
select new {
name = heading.Attribute("name").Value,
tags = heading.Attribute("tags").Value,
content = shapeHelper.List()
};
查看强>
ViewBag.Items.First().content;