entity-framework – 在mvc中使用控制器中的模型类是不好的做法
发布时间:2020-12-16 03:45:33 所属栏目:asp.Net 来源:网络整理
导读:我想在asp.net mvc中使用ORM或数据库表时与最佳实践进行比较.我遇到的一个主要问题是我应该直接在控制器中实例化模型类.不查询数据库,只需使用模型类来存储值. 对于例如如果我使用实体框架作为模型……那么在控制器中使用实体类对象是不好的做法.有时直接使
我想在asp.net mvc中使用ORM或数据库表时与最佳实践进行比较.我遇到的一个主要问题是我应该直接在控制器中实例化模型类.不查询数据库,只需使用模型类来存储值.
对于例如如果我使用实体框架作为模型……那么在控制器中使用实体类对象是不好的做法.有时直接使用控制器中生成的数据库类而不是创建ViewModels甚至ViewData更容易.我们有一个数据访问层和一个业务层,其中应用了所有查询和业务逻辑,但虽然更容易,但我不喜欢在控制器中访问模型的想法,但这真的是一个不好的做法吗? 解决方法
是的,这是一个不好的做法,因为“过度发布”的问题.
例如,考虑UserProfile的实体模型: public class UserProfile { public string UserName { get; set; } public bool IsAdmin { get; set; } public string EmailAddress { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } 您的用户配置文件页面允许用户编辑其FirstName,LastName和EmailAddress. 一个不道德的用户可以简单地修改表单以发布“IsAdmin”以及其他值.因为您的Action期望输入UserProfile,所以IsAdmin值也将被映射,并最终保持不变. 这是an excellent writeup about the perils of under and overposting. 但是,我认为将Entity模型直接绑定到[HttpGet]方法没有错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.net MVC v2 – 调试模型绑定问题 – BUG?
- asp.net-mvc – 如果value为空,在razor模板上放置一个空字符
- ASP.NET 路由实现页面静态化
- asp.net – Linq更新查询生成哪里0 = 1?
- asp.net – 引用依赖于ConfigurationManager的.net core 2中
- 多类选择器
- asp.net-mvc – DateTime字段和Html.TextBoxFor()帮助器 如
- asp.net-mvc – 应用程序池回收导致非常长的响应时间
- asp.net – 如何在Nuget中排除/不显示.NET Framework包?
- asp.net-mvc – 如何在MVC中调用.ashx文件?
推荐文章
站长推荐
- 如何从ASP.NET Web API返回已排序的字典
- asp.net-mvc – 在asp.net mvc中启动一组未选中的
- asp.net – 是否允许使用manifest.json的相对路径
- asp.net-mvc – 使用Entity FrameWork保存更改/更
- asp.net-mvc-3 – ASP.NET MVC3 Razor:如何遵循
- asp.net-mvc – MVC 3部分页面(Razor)和MVC 3视图
- asp.net – WebControl vs HtmlControl. Cos和专
- asp.net-mvc – ASP.NET MVC:使浏览器缓存图像从
- asp.net-mvc-3 – 在ASP.NET MVC中,“<%=”,“<
- asp.net-mvc – 如何在没有提示的情况下为Google
热点阅读