1

视图中不允许使用逻辑,但我想知道是否可以在您的视图中使用 LINQ。

例如:如果我有一个渲染团队球员的视图。在同一视图的侧边栏中,我有一个小部件,它可以呈现最高得分者或其他东西。我可以使用相同的球员集合并使用 LINQ 来获得进球最多的前 5 名球员吗?

我不是在寻找解决方案。我知道使用 LINQ 是可能的,但它是否遵循编码指南(最佳实践)?

更新: 乍一看,我的应用程序很简单。所以我想我可以使用我的 DomainModels(Entities) 作为我的视图的模型。我现在完全分离了我的 DomainModels 并使用构建器来创建我的视图模型。现在,所有 linq 逻辑都从视图转移到了构建器,更加清晰。

4

2 回答 2

3

作为一个经验法则 - 假设您允许您的 web 应用程序作为 web 服务运行,返回 XML(或 JSON 或其他)而不是呈现 HTML。当应用程序充当 Web 服务时仍然需要的任何逻辑都是业务逻辑的一部分,并且应该在控制器中。任何在 web 服务模式下变得多余的逻辑都是表示逻辑,应该在视图中。

网络服务是否需要获取前 5 名玩家?是的!所以这是业务逻辑,不应该出现在视图中。

于 2013-10-16T12:25:56.787 回答
3

在视图中使用逻辑并没有错,只要是表现逻辑,而不是业务逻辑。因此,您可以在视图中使用 linq。

在您的情况下,计算得分最高的球员,我认为将被视为业务逻辑,而不是表示逻辑,并且应该在控制器而不是视图中完成。

于 2013-10-16T12:08:53.283 回答