asp.net-mvc – 关于asp.net MVC视图模型模式的几个问题
我是MVC的新手.
我已经阅读了这篇简短的内容,详细介绍了在MVC中处理视图模型的三种方法: http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx 在我看来,它的主旨是: 方法1,将对象拉出数据库并将其用作视图模型.快速而简单,但是如果你想要来自多个表的数据,你就完全搞砸了(如果没有方法2,我想不出办法). 方法2,创建一个引用多个对象的类,并将其用作视图模型.这样您就可以访问所需的一切.文章说,当视图变得复杂时,由于域/视图模型对象之间的阻抗不匹配而导致故障……我不明白这意味着什么.谷歌搜索的阻抗失配返回的很多东西,它是你正在使用代表对象和东西跨干净不映射数据库的东西,但你可能有这样的问题,甚至与方法1.不知道我是什么样的要点失踪.在我看来,从维护的角度来看,为每个View创建一个类以获取所需的数据并不理想,不确定您是否有选择权. 方法3,我仍然在考虑它,但是我不太明白为什么他们的复选框示例在方法2中不起作用,如果你向你的类添加了一个未连接到域模型的bool addAdditional. 我不了解构建器,特别是为什么使用接口,但会继续使用它. 编辑:我刚才意识到这不是一个真正的问题,我的问题是,我的想法是否正确? 解决方法
我遇到的第2个问题是我必须做以下两件事之一:
>在表单上的每个对象上包含每个单独的字段 – 那些不会显示的字段需要包含但隐藏. 因此,对于#2,我发现我想要做的事情与我需要做的事情之间存在不匹配.如果我们继续讨论#3,那么这个不匹配就会被删除(根据我的理解,简要地瞥了一眼).它还修复了一个问题,即确定的黑客在使用方法#2时可以提交id字段或类似的值,除非我非常小心,否则可以写入我的数据存储.换句话说,除非一个人非常小心,否则可以更新任何对象上的任何内容. 使用方法#3,您可以使用AutoMapper或类似方法执行将自定义对象映射到数据存储对象的脏工作,而不必担心方法#2暴露的安全问题/阻抗(有关#2安全问题的更多详细信息,请参阅注释) ). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在ASP.NET MVC4中自定义错误消息MVC的无效DateTime
- asp.net-mvc – 使用没有ORM的ASP.NET MVC
- asp.net-mvc-4 – 使用@ Url.Content(“?”)有什么好处
- asp.net-core – 如何在ApplicationStarted事件中优雅地中止
- asp.net-mvc – Linq选择语句 – 不在的地方
- asp.net – Umbraco神奇地回归到“看起来还有更多工作要做”
- asp.net-mvc-4 – Dapper.net如何创建地图
- asp.net-mvc – 将ApplicationUser和其他模型移出MVC项目
- ASP.NET自动完成DropDownList
- ASP.NET成员资格 – 让用户使用以前的密码
- asp.net-mvc – 通过删除空格打破我的calc语句的
- asp.net-web-api – 使用swashbuckle api文档的h
- API Test WebApiTestClient工具安装及使用
- asp.net-mvc-3 – RoleProvider不能与服务器上的
- asp.net – 当不匹配路由时,OWIN中的WebApi总是返
- asp.net-web-api – ASP.NET Web-API帮助-API生成
- Asp.net 4.0 Forms Authentication和FriendlyUrl
- asp.net – 使用Cookie进行Web会话状态 – 有哪些
- asp.net – 谁在生产应用程序中实际使用DataGrid
- asp.net – 我无法在我的visual studio 2012(exp