为什么 jQuery 验证显示单词 'false' 而不是我的自定义消息?

Why does jQuery validation display the word 'false' instead of my custom message?

我有一个 jquery 验证规则,如下所示:

NINumber: {
                required: true,
                remote: {
                    url:'/employee/isninumberunique',
                    type: "post",
                    data: {
                        'niNumber': function(){return $('#txtNINumber').val();}
                    }
                }
            }

在我的规则被定义后,我定义自定义消息如下:

messages: {
            NINumber : {
                remote: 'NI Number used by existing employee'
            }
        }

但是,当满足失败条件时(输入不是唯一的),它会显示消息 'false',如下所示

我的控制器 returns JSON 格式为 true 或 false,我知道在满足条件时正在读取消息,因为我尝试了以下操作并且调试器行被命中:

            messages: {
            NINumber : {
                remote: function(){
                    debugger;
                    return 'NI Number used by existing employee'
                }                  
            }
        }

为什么它会读取要显示的消息而不是显示单词 'false'?

问题在于,当我的 Web 控制器从 API 控制器获取 true/false 时,我返回的是字符串形式的 true 或 false,而不是布尔值。一旦我将输入转换为布尔值并返回它,验证就按预期进行了。