asp.net-mvc-2 – 如何在Asp.net MVC 2中使用Base ViewModel
发布时间:2020-12-15 20:41:06 所属栏目:asp.Net 来源:网络整理
导读:当我熟悉Asp.Net MVC时,我使用的是MVC 2,我注意到在Kigg项目中使用了BaseViewData类,我不确定如何实现. 我希望我的每个ViewModels都有一些可用的值.使用一个迭代表,但我想知道最好的做法是什么,Kigg如何做? Kigg public abstract class BaseViewData { publ
当我熟悉Asp.Net MVC时,我使用的是MVC 2,我注意到在Kigg项目中使用了BaseViewData类,我不确定如何实现.
我希望我的每个ViewModels都有一些可用的值.使用一个迭代表,但我想知道最好的做法是什么,Kigg如何做? 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. 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属性? 我应该使用什么最佳做法,样本或模式? 解决方法
我将采取的方法是使用基本控制器,并使用OnActionExecuted覆盖用普通数据填充您的模型.然后只需确保您的控制器从您的基本控制器继承,并且模型从基本模型继承.
public class BaseController : Controller { public override void OnActionExecuted( ActionExecutedContext filterContext ) { var result = filterContext.Result as ViewResult; if (result != null) { var baseModel = result.Model as BaseViewModel; if (baseModel != null) { baseModel.SiteID = ... } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – userManager.FindByName不返回角色
- asp.net-mvc-3 – 实体框架乐观并发异常未发生
- 8种提升ASP.NETWebAPI性能的方法
- 从ASP.NET页面启动.NET DLL
- asp.net – 导致创建新会话的静态文件
- asp.net – signalR – 如何从客户端调用服务器方法 – 代码
- asp.net-mvc – ASP.NET MVC ActionFilter参数绑定
- asp.net-identity – 保护整个ASP.NET 5 MVC 6应用程序
- 实体框架 – MVC 3 EF 4.1 dbContext – 删除具有不可空的外
- asp.net-mvc – 每个请求DbContext发生随机错误
推荐文章
站长推荐
热点阅读