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

如何通过jQuery Ajax将WebForm值以Model类传入WebAPI控制器?

问题分析与解决方案

你遇到的控制器接收模型为null的问题,核心原因很明确:你通过Ajax传递的是数组格式的JSON数据,但你的Web API控制器期望接收的是一个匹配Login类结构的对象,两者结构不匹配导致模型绑定失败。

下面是具体的修改步骤:

1. 修正Ajax请求的data参数

把原来的数组格式改成和Login类对应的对象结构,这样模型绑定才能正确识别并赋值:

submitData() { 
    var username = $("#username").val(); 
    var password = $("#password").val(); 
    $.ajax({ 
        type: 'POST', 
        contentType: 'application/json; charset=utf-8', 
        url: 'http://localhost:53893/api/login/checkLogin', 
        // 这里把数组改成对象,键名和Login类的属性对应
        data: JSON.stringify({ username: username, password: password }), 
        dataType: 'json', 
        async: false, 
        success: function (data) { console.log(data); }, 
        error: function (err) { console.log(err); } 
    }); 
}

2. 额外注意事项

  • 确保JSON对象的键名和Login类的属性名完全一致(C#的模型绑定默认大小写不敏感,但保持一致能避免不必要的问题);
  • 建议移除async: false,同步Ajax请求会阻塞浏览器主线程,影响页面交互体验,改用异步方式处理结果;
  • 如果你的Web API是较旧版本,确认项目中已经正确配置了JSON媒体类型格式化器(通常默认已配置,但自定义配置时需注意)。

这样修改后,控制器就能正确接收到Login对象,执行后续的登录校验逻辑了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:42:07