【问题标题】:Recording details of activity by ActionFilterAttribute in ASP.NET MVC在 ASP.NET MVC 中通过 ActionFilterAttribute 记录活动的详细信息
【发布时间】:2014-04-27 05:59:21
【问题描述】:

我正在使用继承 ActionFilterAttribute 的自定义操作过滤器来记录活动日志,但我只能获取当前用户名、日期时间、控制器和操作。我想了解更多详情。

例如我想得到一个如下的字符串:

“管理员创建了一个项目“ABC””

或

“管理员编辑了项目“DEF”并进行了更改:“PM = John”改为 Harry”

Project是我的DB和Create的表,Edit可以是Action,PM是Project表的字段!

我在 Visual Studio 2013 中使用 ASP.NET MVC 5。

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    我认为操作过滤器不适合您想要实现的目标。如果您在操作执行之前进行记录,即使数据无效,您也将记录项目的创建。您可能可以在操作执行后进行日志记录,但您必须注意异常并推断实际创建的内容会很尴尬。

    您应该在将新项目写入底层数据存储的同时写入活动日志,甚至可能在同一个事务中。如果您有一个存储库,一种简单的方法是使用日志记录功能将其发送至decorate。

    【讨论】:

    • 谢谢。我真的不需要在执行动作之前或期间记录。我以为我会在 Action 内创建一个活动模型来记录所有内容,但我必须在每个 Actions 内创建许多模型。
    • 不确定我是否同意。您可以在可以捕获您需要的内容的操作过滤器中使用添加自定义属性。尝试使用字符串格式化程序作为属性之一来自定义消息,并使用其他属性作为输入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多