为什么选择MVC中的BaseViewModel?

时间:2011-06-22 09:35:35

标签: design-patterns asp.net-mvc-3

我是MVC的新手并且正在开发MVC 3.有人可以解释在MVC中使用BaseViewModel的优点吗?

1 个答案:

答案 0 :(得分:3)

它可以帮助您避免重复代码。例如,在博客上,您可能希望在每个页面上显示标签列表。您可以通过向每个视图模型添加List<Tag>属性来实现此目的。或者,您可以使用BaseViewModel属性创建一个List<Tag>,以保存具有相同属性的视图模型的混乱。

由此:

class HomeViewModel
{
    public List<Tag> Tags { get; set; }
}

class PostsViewModel
{
    public List<Tag> Tags { get; set; }
}

对此:

abstract class BaseViewModel
{
    public List<Tag> Tags { get; set; }

    public BaseViewModel()
    {
        Tags = GetTagsFromSomewhere();
    }
} 

class HomeViewModel : BaseViewModel { }
class PostsViewModel : BaseViewModel { }

希望这有帮助。