我有几个类,其中一个继承自mvc应用程序中的IEnumerable。 当我传递模型时,我收到异常“方法或操作未实现”。 我在网络上的搜索不是我的基础设施
这些类属于dll
public class Raflle : Base
{
public string RaflleNumber { get; set; }
public DateTime RaflleDate { get; set; }
public bool IsNear { get; set; }
}
public class Raflles : IEnumerable<Raflle>
{
public List<Raflle> TList { get; private set; }
public Raflles()
{
TList = new List<Raflle>();
}
public void Add(Raflle item)
{
TList.Add(item);
}
public IEnumerator<Raflle> GetEnumerator()
{
throw new NotImplementedException();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
这个类在mvc应用程序中
public class RafllesModel
{
public int ID { get; set; }
public string RaflleNumber { get; set; }
public DateTime RaflleDate { get; set; }
public bool IsNear { get; set; }
}
public class RafllesController : Controller
{
MainLogic ml = new MainLogic();
//
// GET: /Raflles/
public ActionResult Index()
{
var raffles = ml.GetRaflles();
IEnumerable<RafllesModel> rafflesModel;
rafflesModel = raffles.Select(x => new RafllesModel
{
ID = x.ID,
RaflleNumber = x.RaflleNumber,
RaflleDate = x.RaflleDate,
IsNear = x.IsNear
});
return View(rafflesModel);
}
}
当然,我希望视图的行为如下:
@model IEnumerable<BackOffice.Models.RafllesModel>
我猜我有一些事情我做错了,我想知道GetEnumerator()应该做什么。
谢谢 丹尼
答案 0 :(得分:0)
假设ml.GetRaflles();返回Raffles类的实例:您可以返回列表的枚举器:
public IEnumerator<Raflle> GetEnumerator()
{
return TList.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
或者,由于List是公共属性,您可以跳过实现,直接使用List:rafflesModel = raffles。 TList .Select(..el
rafflesModel = raffles.TList.Select(x => new RafllesModel
{
ID = x.ID,
RaflleNumber = x.RaflleNumber,
RaflleDate = x.RaflleDate,
IsNear = x.IsNear
});