代码之家  ›  专栏  ›  技术社区  ›  Ratan

response.redirect在URL错误400中添加额外字符

  •  0
  • Ratan  · 技术社区  · 14 年前

    我正试图在单击事件服务器端的按钮上使用response.redirect,但它给了我HTTP 400错误的请求错误。我以前没有收到这个错误,但我只是将项目移到了vs 2010 Framework 4.0,然后我开始收到这个错误。 这就是我写的:

     protected void bOrganizationAddID_Click(object sender, EventArgs e)
        {
            string MyURL;
            MyURL = "addNewPopup.aspx?orgID=" + this.OrganizationID;
    
            Response.Redirect(MyURL);
    
    
    
        }
    

    当我尝试构建它时,页面上显示的错误URL是: http://localhost:2504/padrap/pages/admin/%2fpadrap%2fpages%2fadmin%2faddNewPopup.aspx%3forgID%3d33

    而不仅仅是: 本地主机:2504/paddrap/pages/admin/addnewpopup.aspx?OrgID=33

    有人能帮我一下吗?如何获得重定向以转到正确的URL? 谢谢!

    2 回复  |  直到 14 年前
        1
  •  1
  •   pjb    14 年前

    try--server.urlencode(this.organizationID)

        2
  •  1
  •   Ratan    14 年前

    所以,我认为这是4.0中的一个bug,因为我尝试了所有的方法。不过,解决方法是:

    ScriptManager.RegisterStartupScript(this, this.GetType(), 
               "redirectFixOrg", string.Format("document.location = '{0}?orgID={1}'",
               this.ResolveClientUrl("~/pages/admin/addNewPopup.aspx"), this.OrganizationID), true);
    

    这对我有用,但我不知道为什么response.redirect不起作用。

    谢谢!