在视图中使用 LINQ

本文关键字:LINQ 视图 | 更新日期: 2023-09-27 18:35:31

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

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

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

更新:乍一看,我的应用程序很简单。所以我想我可以使用我的域模型(实体)作为我的观点模型。现在,我完全分离了我的域模型,并使用构建器来创建我的视图模型。所有 linq 逻辑现在都从视图移动到生成器,更加简洁。

在视图中使用 LINQ

根据经验 - 假设你允许你的Web应用程序作为Web服务运行,返回XML(或JSON或其他任何东西)而不是呈现HTML。当应用充当 Web 服务时仍需要的任何逻辑片段都是业务逻辑的一部分,并且应该位于控制器中。在 Web 服务模式下变为冗余的任何逻辑都是表示逻辑,应该在视图中。

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

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

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