asp net mvc 验证和 ViewModel

发布于 2024-10-15 16:54:21 字数 360 浏览 1 评论 0原文

我有一个中型项目的四层解决方案:

  1. 模型(EF POCO 实体)
  2. 数据(EF ObjectContext)
  3. 服务
  4. asp net MVC 问题

    a) 我应该在模型或 MVC 项目中拥有验证属性 - 数据标注吗?

    b) 如果在 MVC 中,我应该在哪里设置 ViewModel-s 那么我在控制器中的哪里用数据填充 ViewModel?否则,如果在其他项目上应该为 VewModel 创建存储库?

    c) ViewModel 是否应该具有验证>?

I have four layer solution a medium size project:

  1. Model (EF POCO entities)
  2. Data (EF ObjectContext)
  3. Services
  4. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

落叶缤纷 2024-10-22 16:54:21

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.

jJeQQOZ5 2024-10-22 16:54:21

对模型和视图模型进行验证是可以的。你更喜欢什么取决于你,但最好对 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.

混吃等死 2024-10-22 16:54:21

我真的更喜欢在模型中创建两个文件夹:

一个用于数据库模型类,另一个用于视图模型。

您还可以将所有类型的验证添加到数据库模型类中。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文