加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 关于asp.net MVC视图模型模式的几个问题

发布时间:2020-12-16 09:35:36 所属栏目:asp.Net 来源:网络整理
导读:我是MVC的新手. 我已经阅读了这篇简短的内容,详细介绍了在MVC中处理视图模型的三种方法: http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx 在我看来,它的主旨是: 方法1,将对象拉出数据库并将其用作视图模型
我是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.
方法3似乎是说,而不是直接返回所访问的东西,只是拉出来,你特别需要我认为这是更好,但会是难以维持,因为你需要一些大的构造函数做this.x =域的属性. x,this.y = domain.y等

我不了解构建器,特别是为什么使用接口,但会继续使用它.

编辑:我刚才意识到这不是一个真正的问题,我的问题是,我的想法是否正确?

解决方法

我遇到的第2个问题是我必须做以下两件事之一:

>在表单上的每个对象上包含每个单独的字段 – 那些不会显示的字段需要包含但隐藏.
>仅包含我需要的特定字段,但使用AutoMapper或类似的东西将这些字段映射回实际对象.

因此,对于#2,我发现我想要做的事情与我需要做的事情之间存在不匹配.如果我们继续讨论#3,那么这个不匹配就会被删除(根据我的理解,简要地瞥了一眼).它还修复了一个问题,即确定的黑客在使用方法#2时可以提交id字段或类似的值,除非我非常小心,否则可以写入我的数据存储.换句话说,除非一个人非常小心,否则可以更新任何对象上的任何内容.

使用方法#3,您可以使用AutoMapper或类似方法执行将自定义对象映射到数据存储对象的脏工作,而不必担心方法#2暴露的安全问题/阻抗(有关#2安全问题的更多详细信息,请参阅注释) ).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读