Asp.net core mvc 最佳实践-从另一个控制器调用创建操作

Asp.net core mvc 最佳实践-从另一个控制器调用创建操作,asp.net-core-mvc,asp.net-identity,Asp.net Core Mvc,Asp.net Identity,当用户从帐户控制器内登录时,我尝试存储登录统计信息。我不需要向用户提供此数据,它将仅用于管理目的 实现这一目标的最佳方式是什么 到目前为止,我有一个全局状态模型和全局状态控制器 根据我所读到的,从另一个控制器中调用一个控制器是很奇怪的,通常它们会返回一个视图。服务是否更适合这种情况?或者我可以在此帐户控制器中调用的单独方法 谢谢您的时间。统计数据是什么?如果它们是几个简单的数字,并且在会话期间不经常更改,那么您可以将它们作为会话变量添加到cookie中。如果它们在会话期间经常更改,则针对每个页面

当用户从帐户控制器内登录时,我尝试存储登录统计信息。我不需要向用户提供此数据,它将仅用于管理目的

实现这一目标的最佳方式是什么

到目前为止,我有一个全局状态模型和全局状态控制器

根据我所读到的,从另一个控制器中调用一个控制器是很奇怪的,通常它们会返回一个视图。服务是否更适合这种情况?或者我可以在此帐户控制器中调用的单独方法


谢谢您的时间。

统计数据是什么?如果它们是几个简单的数字,并且在会话期间不经常更改,那么您可以将它们作为会话变量添加到cookie中。如果它们在会话期间经常更改,则针对每个页面从数据库中获取它们,不要将它们存储在任何地方。如果您的问题是如何在中心代码中执行此操作,则可以使用子操作和视图组件。@RacilHilan GlobalStats将包含各种用户信息,例如LoginDate、ChangedPasswordDate和其他可能的信息,因此可以用于报告。假设在多个报告中使用它,您可以按照我的建议使用子操作和视图组件。@RacilHilan这是我在保存数据时遇到的问题。我是否调用AccountController中的GlobalStatsController来保存GlobalStats?我不需要在monent的视图中显示此数据。是的,请编辑您的问题并添加所有相关信息,以便于其他人帮助您。操作、子操作和视图组件都是与视图交互的,而不是用于日志。如果您只需要登录一个控制器,则使用该控制器中的私有函数来执行该作业,并从不同的操作调用该函数。如果您想从不同的控制器登录,那么可以创建一个实用程序/帮助程序类,其中包含可以从所有控制器调用的函数(可能是静态的)。您可以将模型和函数放在一个GlobalStats类中,或放在GlobalStatsHelper之外的单独类中。