C# 回邮赢了';在附加回发之前,是否不显示更改?

C# 回邮赢了';在附加回发之前,是否不显示更改?,c#,asp.net,postback,pageload,C#,Asp.net,Postback,Pageload,我有一个工作登录表单。我只是想做一个简单的测试,看看它是否有效,而且似乎只有在第二次发回时才有效。换句话说 我输入用户名/密码并按下登录按钮,它会发回,但不会显示我已登录 再次单击按钮、重新加载等后,它将再次发回所需结果 // from my pageload //System.Threading.Thread.Sleep(new TimeSpan(0, 0, 0, 10)); //didn't work if (PageBase.Account.AuthenticatedUser !=

我有一个工作登录表单。我只是想做一个简单的测试,看看它是否有效,而且似乎只有在第二次发回时才有效。换句话说

我输入用户名/密码并按下登录按钮,它会发回,但不会显示我已登录

再次单击按钮、重新加载等后,它将再次发回所需结果

// from my pageload

//System.Threading.Thread.Sleep(new TimeSpan(0, 0, 0, 10)); 
//didn't work

if (PageBase.Account.AuthenticatedUser != null) //if user is logged in...
    formLogin.Attributes.Add("Style", "background-color:Green");
else
    formLogin.Attributes.Add("Style", "background-color:Red");
// just changed the background color. 2nd postback it turns green.
感谢您的帮助和投入

编辑:根据需要编辑更多代码

public class AccountManager {
    public Website.User AuthenticatedUser {
        get {
            int id = Convert.ToInt32(( (object)HttpContext.Current.Session["user_id"] ?? 
                                       (object)(HttpContext.Current.Request.Cookies["USER_ID"] ??
                                                new HttpCookie("bugfixcookie") { Value = "0"}).Value));
            var user = (from u in new MyWebsiteEntities().Users where u.ID == id select u).FirstOrDefault();
            return user;
        }
    }
    // create user, 
    public bool Login(string username, string password, bool remember) {
        var result = (from u in new MyWebsiteEntities().Users
        where username == u.Username && password == u.Password select u).FirstOrDefault();
        if (result != null) {
            if (remember) HttpContext.Current.Response.Cookies.Add(new HttpCookie("USER_ID", result.ID.ToString()));
            HttpContext.Current.Session["user_id"] = result.ID.ToString();
            return true;
        } else return false;
    }

    public void Logout() {
        HttpContext.Current.Response.Cookies.Remove("USER_ID");
        HttpContext.Current.Session.Remove("user_id");
    }
}
而且

public class PageBase : System.Web.UI.Page
{
    public static AccountManager Account { get { return new AccountManager(); } }
}
前端


用户名
密码

再次感谢

建议将上面的页面加载代码移动到Page_PreRender事件。原因是页面加载首先运行,然后是按钮事件,然后是预呈现。因此页面加载填充变量并为工作准备代码,然后按钮事件发生,页面工作,然后当所有工作完成时,Pre Render可以收集更改和未更改的信息,以便在页面发送到浏览器之前更新页面。这个流程将允许按下登录按钮,进行登录,然后页面返回正确的格式。希望这有助于建议将上面的页面加载代码移动到Page_PreRender事件。原因是页面加载首先运行,然后是按钮事件,然后是预呈现。因此页面加载填充变量并为工作准备代码,然后按钮事件发生,页面工作,然后当所有工作完成时,Pre Render可以收集更改和未更改的信息,以便在页面发送到浏览器之前更新页面。这个流程将允许按下登录按钮,进行登录,然后页面返回正确的格式。希望这有帮助

我们可能需要更多地查看您的代码。这可能与您执行代码的时间有关。你能发布更多细节吗?添加了更多代码。感谢您的帮助。我们可能需要更多地查看您的代码。这可能与您执行代码的时间有关。你能发布更多细节吗?添加了更多代码。谢谢你的帮助。工作得像做梦一样!现在我还有别的事要感谢明天!:-)像做梦一样工作!现在我还有别的事要感谢明天!:-)