Javascript jQuery真与假 函数abc(){ var name=$(“#name”).val(); $.get(“/Game/CheckName”,{plName:name},函数(数据){ 警报(数据);//此处数据=真 if(data==true){//我试过这样做(if(data)),但效果不太好 window.location.href='@Url.Action(“列表”、“游戏”); }否则{ 警报(“名称已被使用!”); } }); }

Javascript jQuery真与假 函数abc(){ var name=$(“#name”).val(); $.get(“/Game/CheckName”,{plName:name},函数(数据){ 警报(数据);//此处数据=真 if(data==true){//我试过这样做(if(data)),但效果不太好 window.location.href='@Url.Action(“列表”、“游戏”); }否则{ 警报(“名称已被使用!”); } }); },javascript,asp.net,Javascript,Asp.net,在此代码中(如果(数据=true))值始终=false。为什么?如何更改它?试试看 <script type="text/javascript"> function abc() { var name = $("#name").val(); $.get("/Game/CheckName", { plName: name }, function (data) { alert(data); //

在此代码中
(如果(数据=true))
值始终=false。为什么?如何更改它?

试试看

<script type="text/javascript">
        function abc() {
            var name = $("#name").val();
            $.get("/Game/CheckName", { plName: name }, function (data) {
                alert(data); // here data = true
                    if (data == true) { // i tried so (if (data)) but it didn't work too
                        window.location.href = '@Url.Action("List", "Game")';
                    } else {
                        alert("Name is already use!");
                    }
            });            
        }

相反

将其与字符串数据=='true'进行比较

给出以下假设是正确的(这通常是此类问题的原因):

/Game/CheckName
返回一段文字,该文字为“真”或“假”

那么解决办法是:

比较字符串,而不是布尔值

if (data === true)
注意输出中的空白。它将停止匹配精确字符串的代码。您可以通过检查结果中任何地方出现的子字符串“true”来避免这种可能性:

if (data === "true") {}

你需要更具体一些。
数据中包含什么?字符串或布尔值?数据可能是字符串,因此data='true'可能更合适尝试使用
console.log
检查
data
的内容。我注意到您说过您尝试只执行if(data)而不起作用,但我相信这是正确的语法(不是if(data==true)或if(data='true'))。您是否尝试记录数据(console.log)以确保返回任何内容?只有5个错误值:
未定义
0
NaN
,和
错误
。如果您尝试了
If(data)
,结果为false,则
data
是上述值之一。如果
data==true
返回
false
data===true
将永远不会返回true。+1用于在假设中显式显示。+0用于进行假设。错误是这样的:控制器在高位寄存器中返回值=(“true”)
if (data.indexOf('true') >= 0) {}