c# - 查看 ASP.NET MVC3 中的模型模式和用法(同时使用 EF 4.1)

标签 c# asp.net asp.net-mvc asp.net-mvc-3 entity-framework-4.1

几天来我一直在寻找这个问题的答案,这让我发疯。目前,我正在使用 ASP.NET MVC 3 开发一个项目,并尝试使用每个 Controller 的 ViewModel 方法,正如我已查看的许多文章和教程所建议的那样。为了更好地说明我要问的内容,我将在下面概述:

假设我有一个非常简单直接的模型。用户、客户、地址、电话号码、订单、产品、类别等...当用户在我的网站上注册新帐户时,我想: 1)为他们创建一个帐户(这只是一个帐户ID,客户类型) 2) 将他们的客户人口统计数据添加到 Customers 3)添加N地址和地址类型 4)同时添加N个电话号码和类型。

据我所知,我决定需要一个 RegisterCustomerForRegistrationControllerViewModel。我的困境是这个模型是什么样的?我试图尽可能地干,但在实现这种模式时,我似乎每次都在重复自己。我在什么级别放置 DataAnnotations 进行验证?那么即使我只想使用给定 ViewModel 中的类中的一个属性,我是否只是简单地新建一个新的 Customer()?

在这一点上,我什至不确定这是一个正确的假设。关于这个话题似乎有很多意见,但实现的具体例子却很少。我希望有人能为我指明正确的方向,并可能在此过程中提供一些代码片段……我希望这一切都足够清楚,如果没有,请随时提出后续问题。

再次,提前致谢!

最佳答案

在应用程序的两个不同层重复简单属性并不违反 DRY。它只是很好的设计。

DataAnnotations 在 ViewModels 上运行。

ViewModel 看起来像

public class RegisterCustomerViewModel
{
    [Required]
    public string Name { get; set; }
    public List<AddressViewModels> Addresses { get; set; }
    public List<PhoneNumberViewModel> PhoneNumbers { get; set; |

} 

关于c# - 查看 ASP.NET MVC3 中的模型模式和用法(同时使用 EF 4.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667489/

相关文章:

c# - 如何将子控件的所有事件发送到其父控件(自定义控件)?

c# - 从 asp.net ListView 读取\写入\更改 MySql 表

asp.net - 用于向现有 ASP.NET 页面添加用户评论功能的附加组件或库?

asp.net-mvc - 流利的验证不起作用的长度

c# - Entity Framework : Eager Loading Navigation Properties of Inherited Entities

c# - 使用 Azure 从 Web 到移动设备(跨平台)的 Web/浏览器推送通知

c# - 用 3 位数字分隔长号

javascript - 如何访问子 .aspx 页面中的母版页控件(在 javascript 中)

asp.net-mvc - 尝试将 AutoMapper 添加到 Asp.net Core 2?

asp.net-mvc - MVC 4 openauth - 自定义数据存储