在Controller中有一个Exists方法,用来判断指定的用户名是否存在        public bool Exists(string name)
        {
            return name == "Jim" || name == "Tom";
        }在客户端我使用jquery去调用此action, 代码如下:            var name = $('#txtName').val();
            $.post("Exists", { name: name }, function(data, textStatus) {
                if (data === true) {
                    alert('对不起,用户名\"' + name + '\"已被人注册,请选择其他的用户名');
                }
                else {
                    alert('恭喜你,用户名\"' + name + '\"当前未被注册,请使用此用户名完成注册');
                }
            }, "script");经过调试发现,如果将数据类型设为"json"根本就不调用回调函数,改为"script"虽然可以进入回调函数,但返回值是字符串"True",而不是布尔值,后来实在没办法,就想通过eval函数转换成布尔类型,虽然提示转换失败,请教高手这个情况怎么去调用,谢谢!

解决方案 »

  1.   

    var r={
    url:"aaa/xx.aspx",
    method:"post",
    params:{id:xxx},
    success:function(rt){/*dosomething*/},
    scope:this
    }
    ext.ajax.requet(c)
      

  2.   

    javascript问题还是先去javascript论坛问问。
      

  3.   

    一楼给出的代码是extjs代码吗?我只会使用jquery,所以这个没办法测试,有没有jquery,或者原生的js代码,谢谢
      

  4.   


    public ActionResult Exists(string name)
    {
        bool Result=name == "Jim" || name == "Tom";
        return this.Json(new
        {
             ResultBool = Result});
    }                $.post("Exists", { name: name }, function(data, textStatus) {
                    if (data === true) {
                        alert('对不起,用户名\"' + name + '\"已被人注册,请选择其他的用户名');
                    }
                    else {
                        alert('恭喜你,用户名\"' + name + '\"当前未被注册,请使用此用户名完成注册');
                    }
                }, "json");
      

  5.   

    data === true为什么要用===?
      

  6.   

    js改动一下:                $.post("Exists", { name: name }, function(data, textStatus) {
                    if (data) 
                    {
                        if(data.ResultBool)
                        {
                            alert('对不起,用户名\"' + name + '\"已被人注册,请选择其他的用户名');
                        }
                        else 
                        {
                            alert('恭喜你,用户名\"' + name + '\"当前未被注册,请使用此用户名完成注册');
                        }
                    }
                }, "json");
      

  7.   

    if (data === true)YD的 3个=号。
      

  8.   


    因为我上面也说了,js中获取到是的字符串"True",而不是布尔值true,如果用==则"True"和"False"都转换成布尔值true,判断就没有意义了
      

  9.   

    返回调用Json方法返回一个Json对象当然没问题,但是我希望Exists方法简单明了,而且ASP.Net MVC中也支持这样写,只是不知道客户端该如何调用
      

  10.   

    var array={};
        array["True"]=true;
        array["TRUE"]=true;
        array["true"]=true;
    -----------------------------if (data === true)=》if (array[data] === true)