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

使用Ajax提交PremiseID与ApplicationID至数据库失败求助

问题分析与解决方案

以下是导致提交失败的核心问题及修正方案:

1. 请求数据结构与后端模型不匹配

前端构造的requestModel存在两个关键问题:

  • 属性名拼写错误:后端模型的属性是PremisesID(带尾缀s),但前端写的是premiseID(无s),导致参数无法绑定到后端模型。
  • ApplicationID嵌套错误:前端将其包装为{ applicationID: ... }对象,而后端仅需字符串类型的ApplicationID,直接赋值下拉框返回值即可。

2. Ajax请求格式错误

后端通过请求体接收模型,默认情况下jQuery Ajax会以application/x-www-form-urlencoded格式发送数据,无法被正确解析为LinkApplicationToChecklistRequest对象,必须指定contentType为application/json,并将数据转为JSON字符串。

3. JS语法错误

Ajax配置中url行末尾缺少逗号,会导致JavaScript执行报错,直接中断请求发送流程。

修正后的前端代码

function SubmitApplication() 
{
    var requestModel = {
        PremisesID: "@Model.HMOPremiseDetails.PremisesID",
        ApplicationID: $("#ddlState").val()
    };

    $.ajax({
        type: "POST",
        url: "@Url.Action("UpdateLinkApplicationToChecklist", "MyHomeChecklist", new { area ="Application" })",
        contentType: "application/json",
        data: JSON.stringify(requestModel),
        success: function (result) {
            alert("Success!");
            console.log(result);
        },
        error: function (err) {
            alert("Error!");
            console.log(err);
        }
    });
}

额外检查项

  • 确认自定义下拉框赋值逻辑:检查$("#ddlState").val()是否能正确返回选中的ReferenceNo,若自定义下拉框未正确绑定值,需调整下拉框选择事件的赋值代码。
  • 后端业务逻辑排查:在UpdateLinkApplicationToChecklist方法中添加日志或断点,确认参数是否正确接收,同时检查_hmoHelper.LinkApplicationToChecklistAsync方法是否正确执行了数据库写入操作,排查内部业务逻辑异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:25:10