在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函数转换成布尔类型,虽然提示转换失败,请教高手这个情况怎么去调用,谢谢!
{
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函数转换成布尔类型,虽然提示转换失败,请教高手这个情况怎么去调用,谢谢!
url:"aaa/xx.aspx",
method:"post",
params:{id:xxx},
success:function(rt){/*dosomething*/},
scope:this
}
ext.ajax.requet(c)
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");
if (data)
{
if(data.ResultBool)
{
alert('对不起,用户名\"' + name + '\"已被人注册,请选择其他的用户名');
}
else
{
alert('恭喜你,用户名\"' + name + '\"当前未被注册,请使用此用户名完成注册');
}
}
}, "json");
因为我上面也说了,js中获取到是的字符串"True",而不是布尔值true,如果用==则"True"和"False"都转换成布尔值true,判断就没有意义了
array["True"]=true;
array["TRUE"]=true;
array["true"]=true;
-----------------------------if (data === true)=》if (array[data] === true)