0

我们的很多架构都围绕命令 ICommandHandler。我们将 Command 模型发布到控制器动作。然后通过运行 ICommandValidator 的验证器(如果它被 DI 找到)在每个操作中验证命令/模型。然后通过合并从 IComamndValidator 返回的错误来更新 ModelState。

命令验证器是域模型项目的一部分(并且根据启用的客户端/功能等具有各种实现)。我们希望使用域模型中的验证器,因为它们也用于项目的非 MVC 端。

有谁知道我们可以在 ICommandValidator 中挂钩的扩展点,以让它们在操作开始之前运行。我见过 ModelValidatorProviders 但似乎不是我们需要的。我们想注入一个命令验证器(如果存在),运行验证器,并在动作开始之前更新 ModelState。使用过滤器等似乎不正确,因为我认为我缺少/误解了一个扩展点。

任何想法表示赞赏

4

2 回答 2

1

您可以通过执行以下操作来查看 MVC 的扩展点:

打开 Global.asax | 右键单击 HttpApplication | 转到定义

这是对 MVC 4 请求管道的一个很好的回顾:

http://jameschambers.com/blog/a-web-developer-s-look-at-the-mvc4-request-pipeline

于 2013-04-30T15:09:07.603 回答
0

试试这个OnActionExecuting事件。

假设您有一个基本控制器,您可以在其中覆盖该事件,并且在执行操作之前它会在您的每个派生控制器上触发。

于 2013-04-30T11:49:06.213 回答