C# 页面加载与加载
为什么C# 页面加载与加载,c#,.net,asp.net,page-lifecycle,C#,.net,Asp.net,Page Lifecycle,为什么DisplayUsers()不起作用 我的主页是: public class adminPage : System.Web.UI.Page { protected override void OnLoad(EventArgs e) { if (User.Identity.IsAuthenticated == false) { Response.Redirect("~/Account/login.aspx?ReturnUrl=/admin"); };
DisplayUsers()代码>不起作用
我的主页是:
public class adminPage : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
if (User.Identity.IsAuthenticated == false) { Response.Redirect("~/Account/login.aspx?ReturnUrl=/admin"); };
if (!(User.IsInRole("admin") || User.IsInRole("super user"))) { Response.Redirect("/"); };
}
}
我的班级是
public partial class users : adminPage
{
protected void Page_Load(object sender, EventArgs e)
{
string sName;
adminGeneralData.GetToolData(2, out sName);
pageH1.Text = sName;
DisplayUsers();
}
protected void DisplayUsers()
{
DataSet ds = userData.GetUsersData();
userList.DataSource = ds;
userList.DataBind();
}
}
但是DisplayUsers()
不起作用,如果我没有记错,您需要调用基类的OnLoad
事件来正确注册Page\u Load
事件:
protected override void OnLoad(EventArgs e)
{
if (User.Identity.IsAuthenticated == false) { Response.Redirect("~/Account/login.aspx?ReturnUrl=/admin"); };
if (!(User.IsInRole("admin") || User.IsInRole("super user"))) { Response.Redirect("/"); };
base.OnLoad(e);
}
以下是几条好消息:
在执行的代码中,没有区别,但是
- 应为每个页面启用
AutoEventWireup
(通常在标记中)
Page\u Load
(像这样)使用自动事件订阅,它使用反射,这会稍微影响性能
我个人建议重写OnLoad()
,只是不要忘记根据.NET应用程序调用base
:
避免使用Autoeventwireup功能
不要依赖autoeventwireup,而是覆盖页面中的事件。例如,不要编写Page\u Load()方法,而是尝试重载public void OnLoad()方法。这允许运行时不必为每个页面执行CreateDelegate()
我真的不理解UI.Page作为基类而不是真正的业务逻辑的用法。这是一个web演示应用程序。所有的基本逻辑都应该从演示文稿中分离出来。@dingir-给我一个例子!使用PascalCase
进行名称空间设置,键入名称等。以后你可以谢谢我。