我需要将IEnumerable<Object>
传递给MVC视图,并将视图转换为强类型对象并相应地显示它。
这似乎对性能产生影响,而不是将其作为MyCustomObject的IEnumerable传递。
foreach (var item in Model.Items)
{
var current = (MyCustomObject) item;
<p>@current.Submitted</p>
}
我的问题是
答案 0 :(得分:2)
使用List将此传递给模型,然后强烈定义
<强>控制器强>
public ActionResult Index(){
MyModel model = new MyModel();
model.list = //get list from source
return View(model);
}
<强>模型强>
public List<MyCustomObject> list {get; set;}
答案 1 :(得分:2)
最初,您可以在整个集合中使用Cast:
foreach (var item in Model.Items.Cast<MyCustomObject>()){}
如果您的类型都将继承自基类型,例如MyCustomObject,那么您的模型应指定此类型,例如:
public class MyViewModel<T> where T : MyCustomObject, new()
{
public IEnumerable<T> Items { get; set; }
}
您需要确保您希望添加到项目集合中的任何类型都继承自基础MyCustomObject
类型