MVC - 跨多个视图共享ViewModel实例

时间:2011-02-16 15:53:06

标签: .net architecture viewmodel thick-client

只是想知道人们在多个视图中共享一个视图模型实例的想法是什么?

这是反模式还是被接受的做法,有什么优点和缺点?

1 个答案:

答案 0 :(得分:0)

仅根据我的经验

如果观点在他们展示的内容上有所不同,那么主要的缺点可能是未来的重构努力。当您决定分享视图时,您需要考虑这种可能性。

还要注意视图模型的命名。例如,如果您有视图Book / Edit.aspx和Book / Add.aspx,则不需要AddBookViewModel.cs 用于Book / Edit.aspx。例如,这可能会在您的测试中创建一些令人困惑的代码。

在上面的例子中,我通常会使用CreateEditBookViewModel.cs

如果你看一下SharpArchitecture(www.sharparchitecture.net/),我相信他们在他们的脚手架中使用这种方法,他们也使用共享的视图模型通过局部共享视图的元素。

就反模式而言,我会说不;只是健康的代码重用。