你已经alert了 焦点到了弹出框了  下面语句当然不会执行了

解决方案 »

  1.   

    除非缓冲区已经打开,否则,在任何内容或标题返回给浏览器之前,您必须重定向浏览器。将 Response.Redirect 语句放在页的顶部和<HTML> 标记之前可确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用 Response.Redirect,将看到一个错误信息。  如果在页的中间使用 Response.Redirect,请将其与 Response.Buffer 属性一起使用,这是因为在默认情况下,Web 服务器返回 HTML 和在处理 ASP 页时的脚本处理结果。但是,您可以设置 Response 对象的 Buffer 属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。  可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用 Response 对象的 Redirect 方法将用户重定向到另一页,或者用 Response 对象的 Clear 方法清除缓冲区并将不同的内容发送给用户
    Response.Redirect必须放在脚本或HTML之前处理。
      

  2.   

    1楼解释不对吧?
    那 
    function aaa()
    {
       alert("asdasda");
      var a=1;
      alert(a);
    }
    难道这句也是alert()完就不执行下面的吗?
    在JS里alert()常常作为调试脚本用。
      

  3.   

    关于第一个问题:
    你查看下你的css引用是否使用了相对路径,如果是那样的话,你提交之后处理并转发(不是重定向)到default.aspx后肯定会造成css文件无法找到的,这是你的url路径是你的提交路径。关于第二个问题:
    使用Response.Redirect进行重定向的原理是向客户端发送重定向命令使浏览器请求你要定向页面,这个过程是
    不允许有任何http输出的,因为http协议一次只能发送一种格式,发送命令就不能发送http内容,所以那种现象就很容易理解了。其实要实现你的功能,满可以用下面的方式来解决
    if (Request["UserName"] == null || Request["UserName"] == ""){
         Response.Write("<script type=\"text/javascript\">"
         Response.Write("alert('您还没有登录,请先登录!')");
         Response.Write("document.location.href='Login.aspx';");
         Response.Write("</script>");    
      

  4.   

    以下是我引用CSS的路径 <link rel="Stylesheet" type="text/css" href="css.css" />按您写的也没有用啊,报错了。是否写错了?
      

  5.   

    response.buffer=false 关闭缓存区 response.buffer=true;打开
      

  6.   

    引用1段别人的 
    缓冲内容   
        
      默认情况下,Web   服务器返回   HTML   和在处理   ASP   页时的脚本处理结果。但是,您可以设置   Response   对象的   Buffer   属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。   
        
      可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用   Response   对象的   Redirect   方法将用户重定向到另一页,或者用   Response   对象的   Clear   方法清除缓冲区并将不同的内容发送给用户。下面的例子使用了以上两种方法。   
        
      <%     
        
      'Turn   on   buffering.   This   statement   must   appear   before   the   <HTML>   tag.   
        
      Response.Buffer   =   True   %>   
        
      <html>   
        
      <body>   
        
      %>   
        
      If   Request("FName")   =   ""   Then   
        
      Response.Clear   
        
      Response.Redirect   "/samples/test.html"   
        
      Else   
        
      Response.Write   Request("FName")   
        
      End   If   
        
      %>   
        
      </body>   
        
      </html>   
        
      也可以使用   Response.Buffer   避免   Web   服务器在脚本修改   HTTP   标题之前将其返回。有些属性和方法,例如   Response.Expires   和   Response.Redirect   可修改   HTTP   标题。   
        
      当在脚本中设置   Buffer   属性并且没有调用   Flush   方法时,服务器将保持用户发出的   Keep-Alive   请求。养成这样的脚本编写习惯有益于提高服务器的性能,因为,服务器不必为每一个用户请求创建新的连接(假定服务器、用户和任何代理服务器都支持   Keep-Alive   要求)。但是,这种方法的一个潜在的不利因素是:在用户处理完当前的   asp   文件的所有的脚本之前,缓冲区不显示任何响应给用户。对于较长的和较复杂的脚本,用户可能要被迫等待很长一段时间才能看到这一页。   
        
      默认情况下,缓冲区对于   ASP   应用程序是关闭的。可以使用   Internet   服务管理器为整个   ASP   应用程序打开缓冲区。详细信息,请参阅   配置   ASP   应用程序。   
        
      允许代理服务器缓存页   
        
      通过代理服务器,应用程序可以发送页给用户。代理服务器   代替用户浏览器从   Web   站点请求网页。代理服务器缓存   HTML   页以便相同页的重复请求能够快速有效地返回给浏览器。代理服务器执行请求并缓存网页,并减轻网络和   Web   服务器的负荷。   
        
      尽管缓存对   HTML   页都能很好运行,但对包含动态生成信息的   ASP   页则不尽人意。例如,报告股市行情或显示大量业务的存货清单需要提供即时信息。一小时前的信息对目前来讲是很不准确的。如果应用程序返回个人的信息,例如,自定义的主页,希望用户不能看到另一个用户的个人信息。   
        
      默认情况下,ASP   命令代理服务器自己不能缓存   ASP   页(尽管缓存图像、位图、小型应用程序,和其他缓存页上的参考项)。可以使用   Response.CacheControl   属性设置缓存控制   HTTP   标题字段允许缓存某一页。Response.CacheControl   的默认值是字符串   "Private",它避免代理服务器缓存此页。要允许缓存,可将缓存控制标题字段设置为   Public:   
        
      <%   Response.CacheControl   =   "Public"   %>   
        
      因为在任何页的内容被发送之前,HTTP   标题必须被送给浏览器或代理服务器,所以,可在任何   HTML   标记之前设置   Response.CacheControl   属性或使用   Response.Buffer   缓存此页。   
        
      缓存控制标题字段是   HTTP   1.1   规格的一部分。在只支持   HTTP   1.0   的代理服务器上不能缓存   ASP   页,因为没有到期的标题字段发送。   
        
      避免浏览器缓存页   
        
      每一个浏览器版本都有它自己的规格来规定是否缓存页。要避免浏览器缓存   ASP   页,可使用   Response.Expires   设置到期标题:   
        
      <%   Response.Expires   =   0   %>   
        
      值为   0   强迫缓存页到期。因为在任何页被发送之前,HTTP   标题必须被送给浏览器,所以可通过将   Response.Expires   属性放在   HTML   标记之前或使用   Response.Buffer   缓存该页。  
      

  7.   

    1.你应该把css的引用写成相对于根路径的绝对路径比如:
    <link rel="Stylesheet" type="text/css" href="/ui/css/css.css" />2.按您写的也没有用啊,报错了。是否写错了?
    因为你是用.net后台逻辑输出的js代码,我无法调试,难免有语法错误。
    我的思路是你用后台的程序输出一条javascript语句,用js来实现页面的
    跳转。有可能是有些字符被转义了
    if(Request["UserName"]==null||Request["UserName"]==" "){
         Response.Write( "<script   type=\"text/javascript\">"
         Response.Write( "alert( '您还没有登录,请先登录')");
         Response.Write( "document.location.href= 'Login.aspx';");
         Response.Write( "</script>");        
      

  8.   

      Response.Write("<script language='JavaScript'>alert('您还没有登录,请先登录!');location.href='Login.aspx.aspx';</script>");
    要跳转得这样写,前2天我也是犯了正好错误,用过了就知道了 
      

  9.   

    上面的问题还没有解决,新的问题又出来了。我在自己机器上调试的布局和发布后用别的机器浏览的布局不一样,CSS又失效了。我机器用的是IE7.0,调试机器用的是IE6.0。看来要加分了^_^ .
      

  10.   

    if   (Request[ "UserName "]   ==   null   ||   Request[ "UserName "]   ==   " "){ 
              Response.Write( " <script   type=\ "text/javascript\ "> alert( '您还没有登录,请先登录! '); document.location.href= '~/Login.aspx '; </script> ");         
    }   
      

  11.   

    Response.Write(" <script language=" + "javascript" + ">alert('" + "您还没有登录,请先登录!" + "');location.href='想要跳转的页面'; </script>");这样写试试看 
      

  12.   

    if   (Request[ "UserName "]   ==   null   ||   Request[ "UserName "]   ==   " "){ 
              Response.Write( " <script   type=\ "text/javascript\ "> " 
              Response.Write( "alert( '您还没有登录,请先登录! ') "); 
              Response.Write( "document.location.href= 'Login.aspx '; "); 
              Response.Write( " </script> ");         
    }