繁体   English   中英

MVC 强类型 IQueryable <igrouping<tkey, telement> > model </igrouping<tkey,>

[英]MVC Strongly typed IQueryable<IGrouping<TKey, TElement>> model

我正在尝试为我在 MVC 中的一个视图创建强类型 model。 model 是 LINQ GroupBy 查询的结果,因此它是如下所示的类型(按姓氏首字母对员工进行分组)。

@model IQueryable<IGrouping<string, Employee>>

我不确定为什么,但它不允许我拥有这种类型的 model。 我收到的错误消息是:开头的“<”缺少对应的结尾“>”。 这是不正确的。

我知道我可以创建一个视图特定的 model 并填充它,但我想知道为什么这个 model 似乎不起作用?

默认情况下,可以在 razor 视图中直接使用一组非常有限的命名空间。 尝试将其扩展为完全限定名称并查看问题是否仍然存在:

@model System.Linq.IQueryable<System.Linq.IGrouping<string, Name.Space.Employee>>

我不知道你为什么会收到这个错误,因为你似乎使用了正确的 Razor 代码。 有可能页面的其他地方实际上存在错误,通过这条不正确的错误消息显示出来。

一种可以帮助您确定错误真正来源的解决方法是创建您自己的强类型 model class,它可以将此数据作为其属性:

public class EmployeeListViewModel
{
    public IQueryable<IGrouping<string, Employee>> EmployeesByCompanyTitle {get;set;}
}

(有些人会争辩说这是一种更好的方法,因为您现在可以更轻松地向视图 model 添加信息。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM