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

asp.net-mvc – 在MVC3中,我应该有独立的“编辑”模型与“显示”

发布时间:2020-12-16 00:25:03 所属栏目:asp.Net 来源:网络整理
导读:使用MVC3,我应该设计我的视图模型,以便有一个绑定到视图(DisplayModel)和一个发布回控制器(EditModel)? 为了澄清,我不是问数据模型与视图模型 – 我知道将我的视图/控制器绑定到数据/域模型是不好的。 我也不是要求分两个视图共享一个模型,一个用于显示
使用MVC3,我应该设计我的视图模型,以便有一个绑定到视图(DisplayModel)和一个发布回控制器(EditModel)?

为了澄清,我不是问数据模型与视图模型 – 我知道将我的视图/控制器绑定到数据/域模型是不好的。

我也不是要求分两个视图共享一个模型,一个用于显示数据的视图,另一个用于编辑数据的视图。

相反,我询问一个用于编辑数据的视图,以及绑定到视图的模型与绑定到控制器动作的模型。

换句话说,如果这是我的观点:

@model MyApp.Models.CustomerModel

我的控制器操作应该如下所示:

public ActionResult Index(CustomerModel model)

要么:

public ActionResult Index(CustomerEditModel model)

有一点,我们正在做后者(分开)。但最近,我们已经开始做前者(共享)了。

这种变化的原因是因为:

>如果我使用MVC3进行验证,如果我使用DataAnnotations对我的模型进行验证,如果两者都是分开的(在显示模型上映射客户端验证,并且在服务器端验证的编辑模型上) )。
>随着我们的应用成熟,我们意识到我们的显示和编辑模型是95%完全相同的,除了我们的视图模型中的选择列表。现在我们已经将它们移动到了shared class,并且现在通过这个视图传递了这些。

但是我已经看到一些其他的讨论,指出共享模型视图/控制器是一个坏主意,和it violates分离的关注。

有人能帮我理解这两种方法的权衡吗?

解决方法

我已经看到完美的论据和反对,只是取决于最适合你的应用程序。没有一个适合所有可以应用的方法!

如果您还没有阅读,Jimmy Bogard写了一篇非常好的帖子,说明他的团队是如何做MVC here,涵盖了这个主题。

(编辑:李大同)

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

    推荐文章
      热点阅读