Это поможет вам избежать дублирования кода. Например, в блоге вы можете отобразить список тегов на каждой странице. Один из способов сделать это - добавить свойство 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 { }
Надеюсь, это поможет.