none
做网页时看到这样一段代码,有些不懂…… RRS feed

  • 问题

  • protected void Page_Load(object sender, EventArgs e)
            {
                UserInfo info = (UserInfo)UserCommonOperation.UserCommonOperation.GetUserInfo(Session);

                if (info == null)
                {
                    Response.Write("<script>history.back()</script>");
                    Server.Transfer("~/Portal/UserLogin.aspx");
                    return;
                }
            }
    其中userinfo自己定义的类,usercommonoperation也命名空间,里边有自己写的类。不明的就是,为什么一开始要用history.back()?我直接用server.transfer不就得了?为什么要先返回一下呢?

    2009年8月30日 3:10

答案

  • 您好,个人观点供参考:
    Response.Write("<script>history.back()</script>");
    这段代码需要返回到客户端才会生效。但是在还未返回前就已经被终止并转到/Portal/UserLogin.aspx。
    所以我认为这段代码永远不会被执行。应该没有存在的必要。
    2009年8月30日 3:42
    版主
  • 1. 如你所说只需要其一
    2. 要输出脚本应使用 ScriptManager
    3. return 这句不需要

    知识改变命运,奋斗成就人生!
    2009年8月30日 4:00
    版主
  • 你好,等效于:

    protected void Page_Load(object sender, EventArgs e)
            {
                UserInfo info = (UserInfo)UserCommonOperation.UserCommonOperation.GetUserInfo(Session);

                if (info == null)
                {
                    Server.Transfer("~/Portal/UserLogin.aspx");
                }
            }
    jon.valett@gmail.com
    2009年8月30日 4:05
    版主

全部回复

  • 您好,个人观点供参考:
    Response.Write("<script>history.back()</script>");
    这段代码需要返回到客户端才会生效。但是在还未返回前就已经被终止并转到/Portal/UserLogin.aspx。
    所以我认为这段代码永远不会被执行。应该没有存在的必要。
    2009年8月30日 3:42
    版主
  • 1. 如你所说只需要其一
    2. 要输出脚本应使用 ScriptManager
    3. return 这句不需要

    知识改变命运,奋斗成就人生!
    2009年8月30日 4:00
    版主
  • 你好,等效于:

    protected void Page_Load(object sender, EventArgs e)
            {
                UserInfo info = (UserInfo)UserCommonOperation.UserCommonOperation.GetUserInfo(Session);

                if (info == null)
                {
                    Server.Transfer("~/Portal/UserLogin.aspx");
                }
            }
    jon.valett@gmail.com
    2009年8月30日 4:05
    版主
  • 恩,谢谢啊!scriptmanager还没使过……

    2009年8月30日 4:15
  • 啊对,脚本都是在客户端运行的,谢谢!
    2009年8月30日 4:16
  • 哦,谢谢!
    2009年8月30日 4:16
  • 另外,ASP.NET提供了标准的内置验证方式,如果可以的话,建议将您的系统验证方式调整为标准的Forms身份验证。具体请参考以下链接:


    理解的越多,需要记忆的就越少
    2009年8月30日 4:59
    版主
  • 有见地


    聚信与共 ,创赢未来 微软中文技术论坛
    2009年8月30日 5:02
  • 你好!Westmere
         首先感谢你对微软论坛的支持,但是请不要总是发表这样的无意义的回复,这已经违反了版规!请下次注意!
         再次感谢你对微软论坛的支持!
    周雪峰
    2009年8月30日 9:23
    版主