我做了两个方法,都是通过javascript实现页面跳转,但通过调用后台方法(方法1)无论如何都会跳转(请问怎么解决?),方法二没什么问题,只是和方法一做个对比。方法一:
后台代码:
 protected void Page_Load(object sender, EventArgs e)
    {
        AjaxPro.Utility.RegisterTypeForAjax(typeof(land));
        Ajax.Utility.RegisterTypeForAjax(typeof(land));
    }
    [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
    public bool  hh()
    {
        string s = uid.Value.ToString();
        if (s == "1")
        {
            return true;
        }
        else
        {
            return false;
        }
    }前台代码:
<input type="button" value="登录" onclick="chk()" />
<input type="text" id="uid" name="uid" runat="server" /> function chk() {
        
            var s = "<%=hh() %>";            
               alert(s.toString());        //这只是我用来检测传值是否有误            
            if (s) {
                window.location.href = 'admins.aspx '
            }
            else {
                alert("error")
            }
           
        } 
方法二:
<input type="text" id="uid" name="uid" runat="server" />
<input type="button" value="登录" onclick="chk1()" />        function chk1() {
            var txt1 = document.form1.uid;
            var s = txt1.Value;
            if(s=="1") {
                window.location.href = 'admins.aspx '
            }
            else {
                alert("error")
            }
        
        }

解决方案 »

  1.   

    第一个方法 var s ="<%=hh() %>";
    s 为字符型
    改成(if s ="true")试试
      

  2.   

    if (s =="true")我试过了,出现了更有意思的事:之前是无论对错都会跳转,现在是无论对错都不会跳转了
    继续等大神的来临。……。…。…… 
      
      

  3.   

     我现在即便把  public bool hh()改成了  public string   hh(),再用if (s =="true"),也一样无法跳转,只会弹出error来
      

  4.   

    JS 做比较的时候是有规则的,第一种始终跳转,我觉得可能是他首先把你返回的东西当做string了,因为IF里String只要不是'',就会被认为是TRUE
      

  5.   

    一个是看看你返回的是不是“True”  在一个是大小写要匹配
      

  6.   

    第一个<input type="text" id="uid" name="uid" runat="server" />的值不会影响js的执行结果
    第二个,<input type="text" id="uid" name="uid" runat="server" />的值会影响到js的执行结果
      

  7.   

    方案一修改
     protected void Page_Load(object sender, EventArgs e)
      {
      AjaxPro.Utility.RegisterTypeForAjax(typeof(land));
      Ajax.Utility.RegisterTypeForAjax(typeof(land));
      }
      [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
      public bool hh()
      {
      string s = uid.Value.ToString();
      if (s.Equals("1"))
      {
          Response.Write("<script language='javascript'>window.location.href='admins.aspx';</script>");
      }
      else
      {
          Response.Write("<script language='javascript'>alert('error');</script>");
      }
      }
      

  8.   

    后台可以s=="1"吗 s.equals("1")试试
      

  9.   

    两个问题,第一,后台S == "1",肯定是return false;第二,前台if(s)肯定是true,应该写if(s == "True"),你可以alert下那个s变量出来看看。
      

  10.   

    <script>
     function chk() {
            
                var s = "<%=hh() %>";
    var a = 0;
    if(s='true'){
    a=1;
    }            
                
                if (a) {
                    window.location.href = 'www.baidu.com'
                }else{
                    alert("error")
                }
               
            }</script>
      

  11.   

     var s = "<%=hh() %>";         中s='true' 或 s='false' if(s)肯定是true,所以会跳转
      

  12.   

    方法一:
    后台代码:
     protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(land));
            Ajax.Utility.RegisterTypeForAjax(typeof(land));
        }
        [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
        public bool  hh()
        {
            string s = uid.Value.ToString();
            if (s == "1")
            {
                return true;//绑定到html里面直接就是true。注意:你在绑定代码外面加了双引号
            }
            else
            {
                return false;//绑定到html里面直接就是false。注意:你在绑定代码外面加了双引号
            }
        }前台代码:
    <input type="button" value="登录" onclick="chk()" />
    <input type="text" id="uid" name="uid" runat="server" /> function chk() {
            
                var s = "<%=hh() %>";//你这里加了双引号。结果是字符串:var s = "true";或者"false"            
                   alert(s.toString());        //这只是我用来检测传值是否有误            
                if (s) {//javascript认为任何字符串都是true
                    window.location.href = 'admins.aspx '
                }
                else {
                    alert("error")
                }
               
            } 
      

  13.   

    不怎么懂js的飘过,
    Ajax是特殊的,去掉它试一下?
    var不爽,改一下如何?
    检测传值用的什么,那么if()中就用什么。---
     alert(s.toString());        //这只是我用来检测传值是否有误
    的结果看样子是符合预期了。
      

  14.   

    改成:var s = "<%=hh().value %>";
    虽然你这样的写法我没用过,但是我觉得AjaxPro调用取得返回值要加.value
      

  15.   

    我都是这么写的:
    var s=land.hh().value;//land是你的page的类名
    .
    .
    .