【发布时间】:2013-11-19 12:57:06
【问题描述】:
我正在构建一个 ASP.NET MVC 项目并采用以下架构:
- 一个具有模型、验证、dto、逻辑等的Core项目。
- 作为我的 REST API 的 ServiceStack API 项目
- 作为 UI 的 ASP.NET MVC Web 项目
所以,假设我想添加一个用户。我在 Core 项目中定义了一个NewUserInputModel。我给它一些数据注解,比如[Required]。完成此操作后,Web 项目将根据这些注释执行客户端验证。
我的问题是关于服务器端验证。我想使用客户端上使用的相同规则验证NewUserInputModel,并且我想运行验证天气NewUserInputModel来自API或网络项目。
我意识到我可以从 Web 项目中的控制器调用 ModelState.IsValid - 但我想从 Core 项目中调用该验证,以便所有验证逻辑都存在在核心中。这样,无论这个模型如何进入 Core 逻辑,我总是调用相同的验证。我不想将System.Web 引用泄露到我的Core 项目中。
这是一个合理的设计吗?我想是的 - 但如果它有什么味道,我会很高兴听到它。
提前感谢您的帮助。
【问题讨论】: