Asp.net mvc 发送列表<;匿名类型>;在ASP.NETMVC中从控制器到视图
控制器动作方法-Asp.net mvc 发送列表<;匿名类型>;在ASP.NETMVC中从控制器到视图,asp.net-mvc,razor,anonymous-types,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()); } 剃刀视图- @model List<object> @foreach (var it
public ActionResult Index()
{
var todaysTarget = from ra in db.Employee ...
select new { ra.RaCode, ra.TargetQuantity };
return View(todaysTarget.ToList());
}
剃刀视图-
@model List<object>
@foreach (var item in Model)
{
@:item.Name;
}
@型号列表
@foreach(模型中的var项目)
{
@:item.Name;
}
这给了我一个例外-
此词典需要类型为“System.Collections.Generic.List`1[System.Object]”的模型项
有什么帮助吗?在您的视图中尝试:
@model List<dynamic>
@型号列表
或者尝试在返回语句中执行以下操作:
return View(todaysTarget.Cast<object>().ToList());
返回视图(todaysTarget.Cast().ToList());
但如果执行后一种操作,item.Name语句将引发一个错误(type Object没有Name属性),这就是为什么dynamic应该完成任务的原因。这应该是可行的。我在当地试过
@model IEnumerable<dynamic>
<div>
<h1> Test</h1>
@foreach (var item in Model)
{
@item.Name;
}
</div>
@model IEnumerable
试验
@foreach(模型中的var项目)
{
@项目名称;
}
这是一个可怕的想法。视图的角度是特定于模型的。不要使用匿名类型,只创建该类型。为什么在此处使用匿名类型?如果试图创建可用于显示提供的值的泛型视图,则使用匿名类型不是一个好的解决方案。即使您仍然需要这种类型的功能,我建议使用model type=List或List