复习2【mvc&js】:前端后端判断空值总结

前端判断空值的写法如下:

@{
    ViewBag.Title = "NullableTest";
    Layout = null;
}
<script src="~/Content/Scripts/jquery-2.1.1.js"></script>
<h2>NullableTest</h2>

<button id="btnGetValue">Get Value</button>
<script>
    function isEmpty(value) {
        if (value === null || value === undefined) {
            console.log("value === null || value === undefined");
            return true;
        }
        if (typeof value === "string" && value.trim() === "") {
            console.log("返回值是字符串且为空")
            return true;
        }
        if (Array.isArray(value) && value.length === 0) {
            console.log("返回值是数组且为空")
            return true;
        }
        if (typeof value === "object" && Object.keys(value).length === 0) {
            console.log("返回值是对象且为空")
            return true;
        }
        return false;
    }
    $("#btnGetValue").click(function () {
        $.ajax({
            url: "GetBackEndValue", // 替换为实际接口地址
            method: "GET",
            dataType: "json",
            success: function (response) {
                console.log("后端返回完整response:", response);
                // 判断后端返回的值是否为空
                if (isEmpty(response)) {
                    console.log("后端返回了空值");
                } else {
                    console.log("后端返回了有效数据:", response);
                }
            },
            error: function (xhr, status, error) {
                console.error("请求失败:", error);
            }
        });
    })
</script>

后端测试:

1. 返回空字符串

 测试结果如下:

 

2. 返回空对象

 

测试结果如下:

3. 返回空数组

测试结果如下:

 

 

4. 返回 null 或 undefined

测试结果如下:

 我的疑问:这边为何会请求失败,有进入断点,也有执行后端代码。

我的猜想是不是因为后端null的返回值,并不是前端能识别的json,前端有设置dataType: "json",表示只能接受json格式?(待认证,下一节专门讲解这个问题)

5. 返回复杂对象中的空字段

 前端需要改成如下写法:

 测试结果如下:

 

posted @ 2025-04-14 11:23  katesharing  阅读(34)  评论(0)    收藏  举报