Jer*_*ose 18 asp.net-mvc viewmodel asp.net-mvc-3
使用MVC3,我应该设计我的视图模型,以便有一个绑定到视图(DisplayModel),还有一个回发到控制器(EditModel)?
为了澄清,我不是在询问数据模型与视图模型 - 我知道将视图/控制器绑定到数据/域模型并不好.
我也不是要求跨两个单独的视图共享一个模型,一个用于显示数据的视图,另一个用于编辑数据的视图.
相反,我问的是一个用于编辑数据的视图,以及绑定到视图的模型与绑定到控制器操作的模型.
换句话说,如果这是我的观点:
@model MyApp.Models.CustomerModel
Run Code Online (Sandbox Code Playgroud)
我的控制器动作应该是这样的:
public ActionResult Index(CustomerModel model)
Run Code Online (Sandbox Code Playgroud)
要么:
public ActionResult Index(CustomerEditModel model)
Run Code Online (Sandbox Code Playgroud)
有一次,我们正在做后者(单独).但最近,我们开始做前者(共享).
这种变化的原因是因为:
使用MVC3不引人注意的验证,如果我在我的模型上使用DataAnnotations进行验证,如果它们是分开的(在显示模型上映射客户端验证,在服务器端验证的编辑模型上),则需要在两个模型中使用它们. .
随着我们的应用程序的成熟,我们意识到我们的显示和编辑模型是95%相同的,除了我们的视图模型中的选择列表.我们现在将它们移动到一个共享类,现在通过视图传递它们.
但我已经看到其他一些讨论指出,让视图/控制器共享模型是一个坏主意,并且它违反了关注点的分离.
有人可以帮我理解这两种方法的权衡吗?
| 归档时间: |
|
| 查看次数: |
3180 次 |
| 最近记录: |