我们的很多架构都围绕着命令ICommandHandler。我们将一个Command模型发布到控制器动作。然后通过运行ICommandValidator的验证器(如果由DI找到)在每个操作中验证命令/模型。然后通过合并从IComamndValidator返回的错误来更新ModelState。
命令验证程序是域模型项目的一部分(并且具有各种实现,具体取决于启用的客户端/功能等)。我们希望使用域模型中的验证器,因为它们也在项目的非MVC端使用。
有没有人知道我们可以在ICommandValidator中挂钩的扩展点,以便在操作开始之前运行它们。我见过ModelValidatorProviders,但似乎不是我们需要的。我们想要注入命令验证器(如果存在),运行验证器,并在操作开始之前更新ModelState。使用过滤器等似乎并不正确,因为我认为有一个延伸点我缺少/误解。
赞赏任何想法
答案 0 :(得分:1)
您可以通过执行以下操作来查看MVC的扩展点:
打开Global.asax |右键单击HttpApplication |转到定义
以下是对MVC 4请求管道的好评:
http://jameschambers.com/blog/a-web-developer-s-look-at-the-mvc4-request-pipeline
答案 1 :(得分:0)
尝试OnActionExecuting
事件。
假设您有一个基本控制器,您可以在那里覆盖该事件,它将在>强行动
之前触发每个派生控制器。