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可以收集更改和未更改的信息,以便在页面发送到浏览器之前更新页面。这个流程将允许按下登录按钮,进行登录,然后页面返回正确的格式。希望这有帮助我们可能需要更多地查看您的代码。这可能与您执行代码的时间有关。你能发布更多细节吗?添加了更多代码。感谢您的帮助。我们可能需要更多地查看您的代码。这可能与您执行代码的时间有关。你能发布更多细节吗?添加了更多代码。谢谢你的帮助。工作得像做梦一样!现在我还有别的事要感谢明天!:-)像做梦一样工作!现在我还有别的事要感谢明天!:-)