您的位置:首页 > 编程学习 > ASP.NET > 正文

ReturnUrl带多个参数,返回时只返回一个参数的解决方法

更多 时间:2017-5-13 类别:编程学习 浏览量:473

ReturnUrl带多个参数,返回时只返回一个参数的解决方法

ReturnUrl带多个参数,返回时只返回一个参数的解决方法

一、场景描述如下

1、用户进入b.aspx页面,点击提交按钮,如果该用户没有登录,则跳转到登录页面login.aspx,在登录页面登录成功后,再返回到b.aspx页面。

2、常见做法为:在跳转到登录页面时,将b.aspx页面作为ReturnUrl的值带过去,如果b.aspx页面后面带有三个参数:b.aspx?a=1&b=2&c=3,则跳转URL写法为:login.aspx?ReturnUrl=b.aspx?a=1&b=2&c=3。

4、登录成功后,我们希望看到的返回页面是:b.aspx?a=1&b=2&c=3,但是,实际上返回的页面是:b.aspx?a=1,只返回一个参数,后面的b=2&c=3,则返回不了。

 

二、解决方式

使用Server.UrlEncode("")进行编码

例如:

  •  
  • 
    string subURL = Server.UrlEncode("b.aspx?a=1&b=2&c=3");
    Response.Redirect("/login.aspx?ReturnUrl=" + subURL,true); 
    
    		
  •  

    标签:ASP.NET