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

发布时间:2020-01-08 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 在MVC3中,我应该有独立的“编辑”模型与“显示”模型?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用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,涵盖了这个主题。

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – 在MVC3中,我应该有独立的“编辑”模型与“显示”模型?全部内容,希望文章能够帮你解决asp.net-mvc – 在MVC3中,我应该有独立的“编辑”模型与“显示”模型?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。