网页跳转并传值引起的问题
发表在ASP.NET图书答疑 2008-09-19
是否精华
版块置顶:
我是学习《ASPNET2.0入门到精通》做练习的时候遇到的问题,关于网页跳转并传值的问题。
我想这么做:在网站主页“A.aspx”上点击一个按钮“购买”,判断用户是否登录,如果没有登录就记录下该页的URL,跳转到登陆页“login.aspx”,填写用户名和密码正确后点击“登录”按钮,自动跳转回“A.aspx”页。

***********************************************************************
A.aspx页上的关键代码:“购买”按钮代码:
protected void btnBuy_Click(object sender, EventArgs e)
    {  string CurrentUrl = this.Request.CurrentExecutionFilePath;//获取当前页的URL
       if (Session["UserName"] == null){
           Response.Write("<script>alert('登录后选购商品');window.open('login.aspx?ToUrl= "+ CurrentUrl + "')</script>");
        }
    }
***********************************************************************
login.aspx页关键代码:
    static string turnUrl = "login.aspx";

    protected void Page_Load(object sender, EventArgs e)
    {   
        if (Request["ToUrl"] != null)
        {
            turnUrl = Request["ToUrl"];
            Response.Write(turnUrl);
        }
    }

"登录"按钮代码:
 protected void btnLogin_Click(object sender, EventArgs e)
    {
        Response.Redirect(turnUrl);
    }
问题1是:我每次跳转的时候只想在界面上留下一个网页,即调整后的新网页,应该怎么写内容。
问题2是:ToUrl= "+ CurrentUrl + "'与ToUrl="+CurrentUrl+"'有多少区别,主要是"+"和"+ CurrentUrl + "'中间是否该有空格,"+"与CurrentUrl之间是否该有空格,影响有多大,我曾经因为ToUrl= "+ CurrentUrl + "'的写法,导致从login.aspx返回不到index.aspx,错误信息是:
“无法找到资源。 
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /Tangmi/ /Tangmi/index.aspx” 

后来我将ToUrl= "+ CurrentUrl + "'写成ToUrl="+CurrentUrl+"'问题就解决了,但是我不知道原理是什么?
问题3:login.aspx页关键代码:中 static string turnUrl = "login.aspx";如果不加关键字"static"是否对登录并转回前一网页有严重影响?



分享到:
精彩评论 4
小宇O_O
学分:0 LV1
2008-09-19
沙发
第一个问题:
Response.Write("<script>alert('登录后选购商品');window.open('login.aspx?ToUrl= "+ CurrentUrl + "')</script>");将此代码修改如下:
Response.Write("<script>alert('登录后选购商品');window.open('login.aspx?ToUrl= "+ CurrentUrl + "');window.pener=null;window.close();</script>");
第二个问题:
关键的问题是出在ToUrl= "这里,如果在这里使用了空格后获取值会是“ /Tangmi/index.aspx”这样,如果这里ToUrl="不使用空格获取的值“/Tangmi/index.aspx”这样,使用和不使用空格会产生两个不同的路径所以会出错。
第三个问题:
不会有严重的影响。

这位读者您好,非常感谢您对明日图书的关注。需要说明一下提问最后不要提问图书以外的问题,由于我们工作较忙可能不会及时回复你所提出的问题。我们会以图书问题为主的。请您理解。再次感谢您对明日图书的关注。谢谢!
killkisu
学分:0 LV1
2008-09-21
板凳
http://www.mingribook.com/login.php界面有文字错误,“找会密码”应该写成“找回密码”吧?望修改。
killkisu
学分:0 LV1
2008-09-21
地板
小宇版主的代码少了个字母"o",语句也成Response.Write("<script>alert('登录后选购商品');window.open('login.aspx?ToUrl= "+ CurrentUrl + "');[font color=#FF0000]window.opener[/font]=null;window.close();</script>");就可以直接关闭窗口了,谢谢版主的辛勤工作。
小宇O_O
学分:0 LV1
2008-09-22
4L
您好
    对不起,由于我的疏忽将代码打错了,我以后会改正的。还要感谢这位读者纠正错误。谢谢!
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照