asp net mvc 验证和 ViewModel
我有一个中型项目的四层解决方案:
- 模型(EF POCO 实体)
- 数据(EF ObjectContext)
- 服务
asp net MVC 问题
a) 我应该在模型或 MVC 项目中拥有验证属性 - 数据标注吗?
b) 如果在 MVC 中,我应该在哪里设置 ViewModel-s 那么我在控制器中的哪里用数据填充 ViewModel?否则,如果在其他项目上应该为 VewModel 创建存储库?
c) ViewModel 是否应该具有验证>?
I have four layer solution a medium size project:
- Model (EF POCO entities)
- Data (EF ObjectContext)
- Services
asp net MVC question
a)Should i have validation attributes- Dataanotation in Models or MVC project?
b)where should i set ViewModel-s if in MVC then where do i fill ViewModels with data, in Controller? else if on other project should create Repository for VewModel?
c) should ViewModel have validation>?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
A、C) 如果您的视图模型与 DTO 不同,那么您可能更愿意在两种类型中使用 DataAnnotations。这样,您可以在尝试坚持之前进行验证,并在坚持时再次进行验证,以防您的 DTO 在 MVC 应用程序的范围之外使用。
B) 我通常将视图模型放入 MVC 应用程序的 Models 文件夹中,并将 DTO 放入与 MVC 应用程序分开的数据项目中。我经常使用 AutoMapper 在视图模型和 DTO 之间复制值。
A, C) If you have view models that are different from your DTOs, then you might prefer to use DataAnnotations in both types. This way, you can validate before you try to persist and again as you persist in case your DTOs are used outside the scope of your MVC app.
B) I usually tuck my view models into the Models folder of my MVC app and my DTOs into a data project that is separate from my MVC app. I use AutoMapper a LOT to copy values between my view models and my DTOs.
对模型和视图模型进行验证是可以的。你更喜欢什么取决于你,但最好对 ViewModel 进行验证(你不需要使用绑定等),但是当模型也可以使用时,创建大量 ViewModel 需要做更多的工作。
It's okay to have validation on Models and ViewModels. It's on you what you like more, but it's better to have validation on ViewModels (you don't need to use binding and so), but there is more work with creating lot's of ViewModels when Models can be used too.
我真的更喜欢在模型中创建两个文件夹:
一个用于数据库模型类,另一个用于视图模型。
您还可以将所有类型的验证添加到数据库模型类中。
I really prefer to create two folder inside the models:
One is for Database model class and another is for view models.
You can also add all type of validation into the database model class.