【发布时间】:2011-02-14 15:00:55
【问题描述】:
当我熟悉 Asp.Net MVC 时,我正在使用 MVC 2,我注意到在 Kigg 项目中使用了 BaseViewData 类,我不确定如何实现。
我希望我的每个 ViewModel 都有特定的可用值。我想到了使用 iterface,但我想知道最佳实践是什么以及 Kigg 是如何做到的?
基格
public abstract class BaseViewData
{
public string SiteTitle { get; set; }
// ...other properties
}
public class UserListViewData : BaseViewData
{
public string Title { get; set; }
// .. other stuff
}
在我的 WebForms 应用程序中,我使用继承自 System.Web.UI.Page 的 BasePage。
所以,在我的 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 方法,我如何确保从 BaseViewModel 继承的每个 ViewModel 都具有 SiteId 属性?
我应该使用的最佳实践、示例或模式是什么?
【问题讨论】: