我曾遇到这样的问题,代码如下:
  Response.Write   ("<script   language=javascript>alert('订阅成功,请确认手记号码!');</script>");  
  Response.Redirect("personalInfo.aspx");  
   
  结果发现Response.Write   ("<script   language=javascript>alert('订阅成功,请确认手记号码!');</script>");没执行就进行了Redirect,即没有弹出对话框就直接转到另一页去了   
      如何解决这个问题,我在网上查了一下,原因是 Redirect   方法是服务器端方法,而   alert()   是客户端方法,Redirect   由于在服务器端无法判断客户端的 alert 是否已经执行。   
    可以这样:   
    Response.Write   ("<script   language=javascript>alert('......');window.location='Login.aspx'</script>");

     这种方法对于普通的asp.net也许可以,但是我使用的是DNN,我试了一下不行,,它的页面都是tabid等于多少来表示哪个页面的,比如"**/tabid/56/Default.aspx"

所以我最终的解决方法是:
Dim altstr As String = ""
altstr = "恭喜您!订阅成功!\n" + "您的手机号是:" + UserInfo.Profile.Unit + "请确认以便接受订阅信息!"
Dim jsString As String = ""
                    jsString = String.Format("<script> alert('{0}');window.location='{1}'</script>", altstr, NavigateURL(PortalSettings.UserTabId))

                 Me.Response.Write(jsString)

       经过实践,完全成功!

posted on 2008-09-11 14:58  shf  阅读(674)  评论(0编辑  收藏  举报