此字典需要一个类型为';System.Collections.Generic.IEnumerable`1[Mone

本文关键字:Collections System Generic IEnumerable Mone 字典 类型 一个 | 更新日期: 2023-09-27 18:27:19

我的SQL数据库中有两个表,一个用于存储代理(AgentTransmission),另一个记录代理的传输历史(TransmissionHistory)(每个代理在日志记录表上只有一个成功的或回复状态"S"的记录)。

我需要根据基于TransmissionHistory表的日期设置的过滤器,从AgentTransmission表中获取信息。然而,由于我需要将其发送到的视图正在寻找@model IEnumerable<Monet.Models.AgentTransmission>,我得到了以下错误

The model item passed into the dictionary is of type 'System.Collections.Generic.List1[<>f__AnonymousTypeb'18[System.String,System.String,System.String,System.String,System.String,System.String,System.Int64,System.String,System.String,System.Nullable'1[System.DateTime],System.Boolean,System.String,System.String,System.String,System.String,System.String,System.String,System.Nullable'1[System.DateTime]]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable'1[Monet.Models.AgentTransmission]'.

我是Linq/Entity Framework的新手,所以如果有人能给我一个关于正在发生的事情的提示,我将不胜感激。谢谢

        var agents = (from a in db.AgentTransmission
                        join t in db.TransmissionHistory on
                            a.ID equals t.TranTableId
                        where a.RecordStatus.Equals("C") &&
                            a.WelcomeLetter &&
                            t.ReplyResult.Equals("S") &&
                            EntityFunctions.DiffDays(t.TransmittedOn, startDate) <= 0 &&
                            EntityFunctions.DiffDays(t.TransmittedOn, endDate) >= 0
                        select new
                        {
                            a.BankName,
                            a.DRMCompanyName,
                            a.Pendist,
                            a.FirstName,
                            a.LastName,
                            a.MiddleInitial,
                            a.ReferenceNumber,
                            a.AgencyId1,
                            a.AgencyIdType1,
                            a.EffectiveDate,
                            a.JIT,
                            a.Email,
                            a.LocationStreet1,
                            a.LocationStreet2,
                            a.LocationCity,
                            a.LocationState,
                            a.LocationZip,
                            a.CreatedDate
                        });

        return View(agents.ToList());

此字典需要一个类型为';System.Collections.Generic.IEnumerable`1[Mone

您将一个匿名对象传递给视图(选择的new {}部分),而视图需要一个类型为IEnumerable<AgentTransmission>的对象(因为这是您在@model声明中使用的对象)。你应该在传递给你的视图的模型中保持连贯。理想情况下,设计一个视图模型,让select语句返回一个new SomeViewModel,然后让视图强类型化为@model IEnumerable<SomeViewModel>

正如错误试图告诉您的那样,您将视图声明为接受AgentTransmission的集合。

不能将匿名类型的集合传递给它。

相关文章: