从控制器发送列表<anonymoustype>到ASP.Net MVC中查看

时间:2017-01-10 16:41:14

标签: asp.net-mvc razor anonymous-types

控制器动作方法 -

public ActionResult Index()
{
    var todaysTarget = from ra in db.Employee ...
                       select new { ra.RaCode, ra.TargetQuantity };
    return View(todaysTarget.ToList());
}

Razor视图 -

@model List<object>


@foreach (var item in Model)
{
    @:item.Name;
}

它给了我例外 -

  

这个字典需要一个类型为&#39; System.Collections.Generic.List`1 [System.Object]&#39;的模型项。

任何帮助?

2 个答案:

答案 0 :(得分:0)

试试你的观点:

@model List<dynamic>

或者在你的return语句中尝试:

return View(todaysTarget.Cast<object>().ToList());

但是如果你执行后者,则item.Name语句将引发错误(类型Object不具有Name属性),这就是动态应该完成工作的原因。

答案 1 :(得分:0)

这应该有效。我在当地尝试过。

 @model IEnumerable<dynamic> 


<div>
<h1> Test</h1>

@foreach (var item in Model)
{
     @item.Name;
}

</div>