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

ASP.NET Core中使用Ajax向Controller发送数据接收到null值问题求助

问题排查与解决方案

1. 阻止表单默认提交行为

你触发请求的按钮是type="submit"类型,点击时会触发表单默认提交逻辑,导致Ajax请求被中断/参数异常,两种修复方案二选一:

  • 方案1:修改HTML中按钮的type属性
    <button class="btn btn-secondary" type="button" id="sagTikMenuKategoriGuncelleButonModal">Güncelle</button>
    
  • 方案2:在jQuery的click事件中阻止默认行为
    $("#sagTikMenuKategoriGuncelleButonModal").click(function (e) {
        e.preventDefault(); // 新增这行代码
        // 剩余原有代码不变
    });
    

2. 显式指定参数绑定来源

ASP.NET Core默认不会自动把表单格式请求数据绑定到复杂类型参数,在Controller的方法参数前加[FromForm]注解:

[HttpPost]
public IActionResult kategoriAlanGuncelle([FromForm] urunKategorileri mod)
{
    // 剩余原有代码不变
}

如果你后续要传JSON格式参数,需要把Ajax的contentType设为application/json; charset=utf-8,同时把data转成JSON字符串,参数注解换成[FromBody]即可。

3. 修复ID参数类型不匹配问题

jQuery侧通过attr("id")获取到的是字符串类型,如果你的urunKategorileri实体类中urunKategorileriId字段是int/long数值类型,字符串转数值失败会导致整个模型绑定失败,把JS里的ID值转成数值类型:

kategoriAlanAdGuncel.urunKategorileriId = parseInt(kategoriAlanGuncelleId);

4. 实体类规范检查

确认你的urunKategorileri类符合模型绑定要求:

  • 类本身是public修饰
  • urunKategorileriId、urunKategorileriKategoriAdi属性是public修饰,且同时有get和set访问器
    // 正确示例
    public class urunKategorileri
    {
        public int urunKategorileriId { get; set; }
        public string urunKategorileriKategoriAdi { get; set; }
        // 其他属性
    }
    

内容的提问来源于stack exchange,提问作者Batuhan Fındık

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:36:02