【发布时间】:2011-01-14 09:39:23
【问题描述】:
我有一个带有基本页面的网络应用程序。
每个页面都需要从这个基本页面继承,因为它包含他们都需要的属性以及处理登录权限。
我的基本页面有一些属性,例如:IsRole1、IsRole2、currentUserID、Role1Allowed、Role2Allowed。
在每个页面的初始化中,我设置了属性“Role1Allowed”和“Role2Allowed”
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Role1Allowed = True
Role2Allowed= False
End Sub
然后基本页面决定用户是否需要重定向。
'示例代码不完全是什么,错误给出了想法
Protected Overridable Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Role1Allowed And Not Role1 Then
'Redirect somewhere
End If
End Sub
如果页面中需要其他任何内容,则该页面必须覆盖此页面加载,但请确保他们首先调用基本页面加载。
Protected Overrides Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyBase.Page_Load(sender, e)
If Not IsPostBack Then
BindGrid()
End If
End Sub
页面也可以访问其他属性(IsRole1、IsRole、currentUserID),因此可以根据用户决定是否需要执行某些操作。
(我希望这是有道理的)
好的,我有 2 个问题
- 此功能应该在基本页面中还是应该在主页面中,如果是,我如何访问所有属性?
- 由于有多个人在处理此项目并创建页面,因此有些人忘记了从该基本页面继承,或者在覆盖它时调用基本页面加载。 有没有办法强迫他们这样做?
【问题讨论】:
标签: asp.net vb.net inheritance