Asp.net 根据情况选择的回发URL

Asp.net 根据情况选择的回发URL,asp.net,Asp.net,我控制数据库中是否存在用户。如果它不存在,我想留在登录页面。如果它存在,我想转到Default.aspx页面 protected void BtnLogin_Click(object sender, EventArgs e) { if(condition is okey) { // go default.aspx } else { //stay this page } } 我可以在评论栏上写些什么来实现这一

我控制数据库中是否存在用户。如果它不存在,我想留在登录页面。如果它存在,我想转到Default.aspx页面

protected void BtnLogin_Click(object sender, EventArgs e)
{
    if(condition is okey)
    { 
        // go default.aspx
    } 
     else
    { 
        //stay this page
    }
}
我可以在评论栏上写些什么来实现这一点?
谢谢

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

protected void BtnLogin_Click(object sender, EventArgs e)
{
    if(myCondition)
    { 
        Response.Redirect("/default.aspx");
    } 
    else
    { 
        //stay this page
    }
}
如果您想保留POST数据,可以使用
服务器.Transfer
(注意:根据您的编辑,听起来这不是您需要的-我想您只需要
响应。重定向
):

请注意,这样传输帖子的处理程序不会导致浏览器重定向,因此不会更改浏览器URL


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

由于重定向条件以身份验证为中心,因此值得询问您是否查看了asp.net成员资格结构和登录控件。这是非常直接的设置,它将处理保持用户在登录页面上,并在成功时将他们带到默认位置。如果这符合您的需要,那么您最终会得到更干净、更可靠的代码,因为您的代码不是您自己的。
Server.Transfer("/default.aspx");