2014-04-28 55 views
1

我控制用户是否存在于数据库中。如果它不存在,我想保持登录页面。如果存在,我想去Default.aspx页面。根据情况选择回传网址

protected void BtnLogin_Click(object sender, EventArgs e) 
{ 
    if(condition is okey) 
    { 
     // go default.aspx 
    } 
    else 
    { 
     //stay this page 
    } 
} 

我可以在注释行上写什么来实现这个功能? 谢谢!

+0

由于您的重定向条件以身份验证为中心,所以值得问问您是否查看了asp.net成员资格结构和登录控件。这是非常简单的设置,它会处理保持登录页面上的用户,并将他们带到成功的默认位置。如果这符合你的需求,你将得到更干净和更可靠的代码,因为你不会自己动手。 –

回答

2

听起来像是你只想做一个重定向:

protected void BtnLogin_Click(object sender, EventArgs e) 
{ 
    if(myCondition) 
    { 
     Response.Redirect("/default.aspx"); 
    } 
    else 
    { 
     //stay this page 
    } 
} 

如果您想保留POST数据,你可以使用Server.Transfer代替(注:根据您的修改,它声音像这是你所需要的 - 我想你只需要Response.Redirect):

Server.Transfer("/default.aspx"); 

注意转移POST的处理程序一样,这将原因浏览器重定向,因此将而不是更改浏览器的URL。

如果您需要实际发布到不同的URL并更新浏览器,则需要使用跨页面回发(使用表单元素上的action属性)直接发布到该URL,然后验证页面,然后在验证失败时重定向回原始页面。