Когда я знакомлюсь с Asp.Net MVC, я использую MVC 2, я заметил использование класса BaseViewData в проекте Kigg, который я не уверен, как реализовать.
Я хочу, чтобы у каждой из моих ViewModels были доступны определенные значения. На ум приходит использование интерфейса, но мне интересно, какова лучшая практика и как Кигг это делает?
Kigg
public abstract class BaseViewData
{
public string SiteTitle { get; set; }
// ...other properties
}
public class UserListViewData : BaseViewData
{
public string Title { get; set; }
// .. other stuff
}
В моем приложении WebForms я использую BasePage, который наследуется от System.Web.UI.Page.
Итак, в моем проекте MVC у меня есть это:
public abstract class BaseViewModel
{
public int SiteId { get; set; }
}
public class UserViewModel : BaseViewModel
{
// Some arbitrary ViewModel
}
public abstract class BaseController : Controller
{
private IUserRepository _userRepository;
protected BaseController()
: this(
new UserRepository())
{
}
}
Ссылаясь на методологию Kigg, как мне убедиться, что каждый из моих ViewModel, который наследуется от BaseViewModel, имеет свойство SiteId?
Какую наилучшую практику, образцы или образцы я должен использовать?