asp.net-mvc – 模型在MVC中的作用是什么?
我读过一些关于MVC的文章,但有一件事我不清楚.该模型在实际中的作用是什么.
模型是否代表业务对象? 以两个业务类为例(从数据库填充的数据) Class Image Property FileName As String Property CreatedBy As User End Class Class User Property UserName as String End Class 将“Image”作为模型还是应该创建一个新类? 在模型中,我应该创建一个UserName属性来从User对象中获取它的数据吗? Class ImageModel Property FileName As String Property CreatedBy As User ReadOnly Property UserName As String Get Return User.UserName End Get End Property End Class 解决方法
对此有很多看法,但根据我的经验,该模型有两个主要观点:
视图模型 这是一个POCO,它只包含显示View所需的所有数据.数据通常由Controller填充. 胖模型,瘦瘦的控制器 该模型完成了大部分业务工作.它包含并填充View所需的所有数据,并由Controller用于保存数据等. MVC之美 MVC的美妙之处在于它是开放的!您可以选择任何类型的模型…您可以将所有数据放入ViewState,放入模型,放入包含一堆模型的ViewModel,无论如何.这完全取决于你.模型,视图和控制器是空白的画布,可以随意使用. 我用的是什么 我的团队已经做了很多MVC工作,我们已经尝试了很多这些不同的方法.我们最终决定我们最喜欢的是Fat Model,Skinny Controller范例. >控制器 >处理与HTTP请求有关的所有内容 – 重定向,身份验证,Web安全,编码等. >意见 >处理所有HTML和JSON生成 >模特 >负责进行所有更新,调用业务和数据层,加载所有数据 虽然这听起来像是MVC的通用原则,但很快就会发现MVC不需要这些原则,这就是许多项目使用其他原则的原因. 例 这是一个示例模型. Controller创建它,它自己填充,Controller将它传递给View. public class UsersModel { protected UserBusiness userBusiness = new UserBusiness(); public UsersModel(string editUserName) { // Load all users: this.Users = userBusiness.GetAllUsers(); // Load the user to be edited: this.EditUser = (editUserName == null) ? null : userBusiness.GetUser(editUserName); } public List<User> Users { get; private set;} public User EditUser { get; private set; } } 在这种情况下,所有“用户业务逻辑”都在一个不同的项目(我们的“业务层”),因为我们有一个大型系统.但是较小的项目不需要这样……模型可以包含业务逻辑,甚至是数据访问代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET – 在按钮单击时将参数传递给服务器
- Asp.Net Core&Jenkins持续交付到Windows Server
- asp.net – Crystal Report Viewer控件未加载报表中的图像
- Asp.net DAL和BLL首选设计模式方法
- razor – 如何将值绑定到ASP.NET Core MVC中枚举中每个项的
- asp.net-mvc – 在Global.asax中注入依赖项
- asp.net-mvc – ASP.NET MVC 3发布日期?
- asp.net-core – 如何使用.net Core设置离线开发
- asp.net-mvc-3 – 请参阅控制器中的验证摘要
- asp.net-mvc – MVC控制器正在被调用两次
- asp.net-mvc – 我们如何使用ASP.NET MVC 4和MEF
- EFCore 5 新特性 SaveChangesInterceptor
- asp.net – 缺少AuthenticationManager引用
- asp.net-mvc – 如何构建一个简单的ASP.NET MVC应
- asp.net – 如何在Umbraco中创建自定义aspx页面?
- asp.net-web-api – 如何使ASP.NET Web API只返回
- asp.net-mvc – 在asp.net mvc actionlink中传递
- 如何使用ASP.NET MVC4 Razor项目中的web.config文
- asp.net-mvc – asp.net mvc使用.wml保持覆盖tex
- asp.net – 在会话中存储相当大量的数据是否可以