我正在尝试为我在 MVC 中的一个视图创建一个强类型模型。该模型是 LINQ GroupBy 查询的结果,因此它是如下所示的类型(按姓氏的第一个字母对员工进行分组)。
@model IQueryable<IGrouping<string, Employee>>
我不确定为什么,但它不允许我拥有这种类型的模型。我收到的错误消息是:开头的“<”缺少相应的结尾“>”。这是不正确的。
我知道我可以创建一个特定于视图的模型并填充它,但我想知道为什么这个模型似乎不起作用?
我正在尝试为我在 MVC 中的一个视图创建一个强类型模型。该模型是 LINQ GroupBy 查询的结果,因此它是如下所示的类型(按姓氏的第一个字母对员工进行分组)。
@model IQueryable<IGrouping<string, Employee>>
我不确定为什么,但它不允许我拥有这种类型的模型。我收到的错误消息是:开头的“<”缺少相应的结尾“>”。这是不正确的。
我知道我可以创建一个特定于视图的模型并填充它,但我想知道为什么这个模型似乎不起作用?
默认情况下,可在剃刀视图中直接使用的命名空间非常有限。尝试将其扩展为完全限定名称并查看问题是否仍然存在:
@model System.Linq.IQueryable<System.Linq.IGrouping<string, Name.Space.Employee>>
我不知道您为什么会收到此错误,因为您似乎使用了正确的 Razor 代码。页面中的其他地方实际上可能存在一个错误,该错误通过这个不正确的错误消息被显示出来。
可以帮助您确定错误的真正来源的解决方法是创建您自己的强类型模型类,它可以将此数据作为其属性:
public class EmployeeListViewModel
{
public IQueryable<IGrouping<string, Employee>> EmployeesByCompanyTitle {get;set;}
}
(有些人会认为这是一种更好的方法,因为您现在可以更轻松地向视图模型添加信息。)