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

前端之家收集整理的这篇文章主要介绍了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,涵盖了这个主题

原文链接:https://www.f2er.com/aspnet/252212.html

猜你在找的asp.Net相关文章