繁体   English   中英

重载MVC3中的ActionResult

[英]overload the ActionResult in MVC3

如果这不是个好主意,请提供指导。

我有一个客户想要非常详细的应用程序登录系统。 他们想跟踪每次点击以及被点击的页面和控件。

我当时认为,SQL Server上一个不错的存储过程将使我能够保留这些信息,但是将这种级别的信息存入数据库是个问题。

我当时正在考虑在EF中添加一个条目,以将信息发布到每个ActionResult代码块中的SQL服务器中,但是这发生在我身上,也许我可以重写ActionResult并这样做。

有人做过那样的事吗?

tia

您可以使用ActionFilters记录各种事情。 本文甚至还有一个日志记录示例。 顺便说一下,相同的动作过滤器也可以在调试过程中为您提供帮助,因此您可以查看异常发生之前发生的情况。

而且,如果您的客户想要超级疯狂的跟踪信息,则可以记录MiniProfiler的记录和跟踪信息 ,其中包含各种额外的信息,例如实际的db调用等。

但是,正如安德烈(Andre)所述,请使用其他数据库,并异步保存结果。

编辑:

此方法记录应用程序中实际发生的情况,用户操作的实际结果,如果客户需要记录日志以进行审核或类似的操作,则ActionFilters适合您。

如果您的客户想要跟踪使用情况统计信息(例如网页热图 ),那么请查看搜索结果:-)

这不是一个小问题 ,但是您必须考虑一点,我想讨论一下。

如果您需要跟踪日志的详细信息(例如用户在页面上单击的位置),则强烈建议您不要将这些日志存储在应用程序使用的同一数据库中 ,因为可伸缩性是一个问题。 此外,跟踪日志非常适合NoSQL数据库。 由于大多数数据库都使用REST API,因此,这是使用javascript跟踪用户交互的理想解决方案。

想一想。 您将有一个隔离的REST Web服务来存储跟踪日志。 可以轻松地从C#(从Controller或任何地方)和视图中发送它们。

任何反馈将不胜感激。 正如我所说,这不是答案,而是将其视为集思广益。

问候

暂无
暂无

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

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