Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 页面加载与加载_C#_.net_Asp.net_Page Lifecycle - Fatal编程技术网

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
进行名称空间设置,键入名称等。以后你可以谢谢我。