You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC Core重复条目检测功能失效求助

重复检测失效的排查与修复

以下是你的代码可能存在的问题及对应的修复方案:

1. projects数组未同步最新数据

你的重复检测依赖projects数组,但如果getall()方法只更新了页面DOM,没有重新给projects数组赋值,那么检测用的还是旧数据,自然查不到新添加的重复项。

修复:确保getall()方法在获取数据后,把最新数据赋值给projects,比如:

function getall() {
    $.ajax({
        url: '/YourController/GetAll', // 替换成你的实际接口地址
        type: 'GET',
        success: function(response) {
            // 渲染页面DOM的逻辑...
            projects = response; // 关键:把最新数据赋值给projects数组
        }
    });
}

2. 数据类型不匹配导致全等比较失败

输入框获取的fee是字符串类型,而projects数组里的fee如果是数字类型,用===全等比较会因为类型不同返回false,导致漏判重复。

修复:把fee转换成数字后再比较:

function isDuplicateEntry(coursename, fee) {
    const inputFee = Number(fee); // 把输入的fee转成数字
    for (var i = 0; i < projects.length; i++) {
        if (projects[i].coursename === coursename && projects[i].fee === inputFee) {
            return true;
        }
    }
    return false;
}

3. 编辑模式下误判重复

如果addProject()同时处理新增和编辑,编辑现有项目时,检测逻辑会把当前项目本身当成重复项,导致无法保存修改。

修复:加入编辑状态判断,排除当前编辑的条目:

// 假设你有一个变量存储当前编辑项的ID
let currentEditId = null;

function addProject() {
    var coursename = $('#name').val();
    var fee = $('#fee').val();

    // 检测重复时传入当前编辑ID
    if (isDuplicateEntry(coursename, fee, currentEditId)) {
        alert("重复条目");
        return;
    }

    // ... 后续AJAX提交逻辑
}

function isDuplicateEntry(coursename, fee, editId) {
    const inputFee = Number(fee);
    for (var i = 0; i < projects.length; i++) {
        const project = projects[i];
        // 如果是编辑模式,跳过当前编辑的条目
        if (editId && project.id === editId) {
            continue;
        }
        if (project.coursename === coursename && project.fee === inputFee) {
            return true;
        }
    }
    return false;
}

4. 补充data变量定义

你的AJAX提交里用了JSON.stringify(data),但代码里没看到data变量的定义,这会导致提交失败,建议补充:

function addProject() {
    var coursename = $('#name').val();
    var fee = $('#fee').val();

    // ... 重复检测逻辑

    // 定义要提交的数据
    const data = {
        coursename: coursename,
        fee: Number(fee) // 转成数字类型匹配后端字段
    };

    $.ajax({
        // ... AJAX配置
        data: JSON.stringify(data),
        // ... 成功回调
    });
}

内容的提问来源于stack exchange,提问作者ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:23:24