哪个方法View()在System.Web.Mvc.Controller中最后被调用?或者我应该重写每一个?我想在我的BaseController中设置一些视图数据,它从System.Web.Mvc.Controller继承。在ASP.NET MVC控制器中重写哪个View()?
编辑: 我想用来存储像IsLoggedIn和BasicUserDetails用户的基本信息{PermissionLevel,用户名,EmailAddress的,用户ID}
这是设置它的地方吗?
哪个方法View()在System.Web.Mvc.Controller中最后被调用?或者我应该重写每一个?我想在我的BaseController中设置一些视图数据,它从System.Web.Mvc.Controller继承。在ASP.NET MVC控制器中重写哪个View()?
编辑: 我想用来存储像IsLoggedIn和BasicUserDetails用户的基本信息{PermissionLevel,用户名,EmailAddress的,用户ID}
这是设置它的地方吗?
有两种不同的实现(在RC 1):
protected internal virtual ViewResult View(string viewName, string masterName, object model) {
protected internal virtual ViewResult View(IView view, object model) {
所有的人打电话给这两间。但是,我不会认为这会永远保持这种方式。我将不得不想象,该框架的未来版本可能会改变这一点。
更新:存储用户信息,use ASP.NET membership。它已经告诉你用户是否登录 - Request.IsAuthenticated。您可以使用普通的会员功能存储自定义权限。电子邮件属性等已经被支持。当然,认证提供商是可插拔的,所以你可以使用任何你想要的一种认证方式 - 的Windows,域的OpenID等
更新2:还要注意的是ControllerBase有一个虚拟的初始化方法,你可以重写以后在各种行动中设置你将需要的东西。
你可能想重写控制器上的“过滤器”方法之一。有四个这样的方法:
这是一个更好的方式来增加共同所有的动作功能,因为它是官方支持并不太可能改变
谢谢!这将帮助我很多! – 2009-02-09 22:13:57