Request.Url的值有可能会带端口号
Request.Url的值有可能会带端口号1、一个常见的应用场景
在A页面点击提交按钮,如果用户没有登录,则跳转到登录页面,登录完成后,回跳到当前页面。
2、常见做法
利用Request.Url,获取当前页面,然后赋值给ReturnUrl参数,登录成功后,回跳到ReturnUrl参数指定的页面。
即:Response.Redirect("/user/login?ReturnUrl="+Request.Url)。
3、存在的问题
如果这个网站做了负载均衡,指定的网站端口号不是80端口,则使用Request.Url,获取的网站URL中,含有端口号,类似于:studyofnet.com:123/news/list。这样会跳到 studyofnet.com:123/news/list 页面时,则会报错。
4、解决方法
Response.Redirect("/user/login?ReturnUrl=http://www.studyofnet.com/" + Request.Url.Query)。
即:ReturnUrl后面明确指定当前页面的URL地址,然后通过 Request.Url.Query 获取URL问号后面的所有参数信息。