只是想知道人们在多个视图中共享一个视图模型实例的想法是什么?
这是反模式还是被接受的做法,有什么优点和缺点?
答案 0 :(得分:0)
仅根据我的经验
如果观点在他们展示的内容上有所不同,那么主要的缺点可能是未来的重构努力。当您决定分享视图时,您需要考虑这种可能性。
还要注意视图模型的命名。例如,如果您有视图Book / Edit.aspx和Book / Add.aspx,则不需要AddBookViewModel.cs 用于Book / Edit.aspx。例如,这可能会在您的测试中创建一些令人困惑的代码。
在上面的例子中,我通常会使用CreateEditBookViewModel.cs
如果你看一下SharpArchitecture(www.sharparchitecture.net/),我相信他们在他们的脚手架中使用这种方法,他们也使用共享的视图模型通过局部共享视图的元素。
就反模式而言,我会说不;只是健康的代码重用。