asp.net-mvc – 控制器或模型中的存储库?
我一直在研究NerdDinner教程,其中大部分都是有道理的.我不确定的是为什么Repository直接在Controller中使用而不是Model对象.例如,如果我们想要实现我们自己的会员系统并且它有一个带有Login方法的AccountController,那么连接它的最佳解决方案是什么?例如
Login(username,password){ repo = AccountRepository account = repo.getLogin(username,password) //check account isn't locked //check account has been verified etc etc //throw error or proceed to secure area } 要么 Login(username,password) account.login() //business logic is handled in Account (Model) } 要么 Login(username,password){ //no reference to repository account = Account //Account (Model) uses repository and handles business logic account.login(username,password) } 我建议让Account对象直接使用AccountRepository,而不是AccountController从AccountRepository获取信息,然后将其传递给Account对象,例如 NerdDinnner风格: 1登录请求进来 我在暗示: 1登录请求进来 后一种风格的原因是,在从AccountRepository返回登录详细信息之后,将遵循业务规则,例如,是帐户锁定,帐户验证等.如果使用第一个样式,获取详细信息然后使用它们的逻辑分为两个步骤.后一种风格将所有逻辑保持在一起,同时仍然使用AccountRepository,例如 Account.Login(username,password){ repo = AccountRepository account = repo.GetLogin(username,password) //check account isn't locked //check account has been verified etc etc //throw error or proceed to secure area } 我希望这是有道理的. 解决方法
mvc中的“模型”是表示模型,而不是域模型.您可以将MVC中的模型视为Controller使用的数据传输对象,以提供视图引擎. 控制器是与服务层连接的唯一actor.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Application_AuthenticateRequest总是在Session
- asp.net – 用于解析csv的正则表达式
- asp.net – 为什么IIS首次访问速度慢,但之后更快?
- asp.net-mvc – 如何使用存储库模式处理表关系?
- asp.net-mvc – 使用ViewModel模式与MVC 2强类型的HTML助手
- asp.net-mvc – 如何在ASP.NET Razor MVC4视图中使用LINQ?
- 二进制数据的序列化反序列化和Json的序列化反序列化的重要区
- asp.net-mvc-3 – MVC3不显眼的验证在IE中不起作用
- ASP.NET (C#) 数据库-01_ADO_NET-04_DataSet-07_TableMappi
- asp.net-mvc – Web Deploy/Publish正在添加一个未知的连接
- 为什么用户信息存储在ASP.NET的默认成员资格提供
- asp.net – 在localhost上将网站添加到IIS
- asp.net-mvc – 如何使用Autotyper和Betty方法将
- asp.net-mvc – 人们如何使用编辑器/显示模板与H
- ASP.NET和会话 – 新的浏览器实例与新的浏览器窗
- entity-framework – Ninject WebAPI由于DbConte
- 为什么NuPack生成的NinjectMVC3.cs无法编译? (或
- asp.net-mvc – MVC4:如何对此选择列表/下拉列表
- 浅谈Quartz.Net 从无到有创建实例
- asp.net-mvc – ASP.net MVC支持带有连字符的URL