这可能是一个过于自以为是的问题,但寻求帮助!
我一直在尝试改进我的 ASP.NET MVC 程序结构。我刚刚在预览版 5 中开始使用它,这是我第一次涉足业务应用程序开发——所以一切都是新的!
在 Controller 级别,我有一个服务对象负责与存储库对话并处理所有业务逻辑。在操作级别,我有一个保存所有 View 数据的对象——用户输入和生成的输出——我将其称为 View 对象(是否有一个通用术语?)。与我看到的大多数示例不同,这个对象不是数据库对象,而是特定于 View 的对象。
所以现在我想添加用户验证。问题是,我不知道把它放在哪里。在服务层做这件事对我来说最有意义。服务层负责所有业务逻辑,验证是业务逻辑。另一方面,我看到的大多数验证框架都是用于验证对象,这让我认为 View 对象应该具有验证意识。最后,有一些验证方法需要数据库连接(例如检查用户输入字段是否有相应的数据库记录),并且 View 对象没有数据库的概念,只有服务。
所以我看到的一些选项是:
我确定还有更多。我很好奇其他人如何处理 MVC 意义上的用户输入验证。我以前使用过 Enterprise Validation Block 并且喜欢能够对所有内容使用股票验证器,但我不确定如何使其适合单独的 View 对象和服务层。如果它们(查看对象/服务)是同一个对象,那会很容易,这可能是人们所做的?就像我说的,这对我来说是全新的,我正在寻找最佳实践/模式。
最佳答案
我通常在提交表单时在 Controller 操作中进行基本验证(必填字段、电子邮件格式等)。然后我让业务层处理需要业务知识的验证。我通常也会仔细检查业务层中的基本内容,因此如果我通过 Web 服务公开该逻辑或稍后在另一个应用程序中使用它,我仍然会在最重要的地方(IMO)进行验证。
关于asp.net-mvc - ASP.NET MVC - 用户输入和服务/存储库 - 在哪里进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/294890/