跟踪MVC的正确方法

时间:2014-01-22 04:58:04

标签: c# .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我从去年开始在MVC工作。我遵循MVC方法,即简单的appraoch而不是Repository模式。现在,我开始了解使用Repository和依赖注入的优点,我觉得它以正确的方式遵循oops。 这是我的想法。 在我的一个示例/测试项目中,我开始使用repositor并且几乎没有关于它的问题:::

1)当我们使用EDMX时,假设我有一个表名为“Users”,它会自动生成    创建一个名为“users”的类,其中包含所有字段作为属性。 我通常遵循的是创建一个模型层并在该模型的名称层中添加一个类 “myUsers”将包含与用户类相同的属性。现在,我将绑定视图 带有“myUsers”的页面,因此无法直接处理DAL。

每当我从我的视图页面发布内容时,该对象都会出现在“MyUsers”模型中, 在这里我再次做这样的事情。 Users = MyUsers(我通过为每个属性执行此操作,例如:: Users.Name = MyUsers.Name 然后我将其保存在数据库中。

我使用上述方法,在我的应用程序中,我使用了上述方法。 现在我的问题是 我可以直接将我的视图页面与“用户”类绑定吗?在我看到一些应用程序时, 它正在发生。它减少了很多工作量,也降低了应用程序的开销。

什么是正确的方法?直接处理DAL或应该有模型 在他们之间?

2 个答案:

答案 0 :(得分:1)

“正确的方法”是主观的。我们喜欢创建纯粹为了在视图中显示域对象而存在的ViewModel,因为这意味着我们可以将视图逻辑与域分开。我们可能并不总是想要显示/加载域对象的每个属性。作为另一个例子,我们将DataAnnotation的属性放在我们的ViewModel上进行验证..但是我们将域对象保留为不错的小POCO。

尽可能地手动映射它们是一种令人难以置信的浪费时间。有一些框架可以帮助您...例如:

答案 1 :(得分:0)

据我所知,这是正确的架构。

让我在下面的评论中解释答案。

enter image description here