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

如何通过jQuery的AJAX GET方法传递ClientId获取数据?

解决jQuery AJAX GET请求传递参数到ASP.NET Core API的问题

看起来你遇到的核心问题是参数模型绑定失败,导致后端无法正确获取到你传递的clientId。我来帮你一步步解决:

问题分析

  1. 大小写不匹配:你的C#类ClientDetails里的属性是ClientId(大写C开头),但AJAX里传递的参数是clientId(小写c开头)——C#是大小写敏感的,默认模型绑定会因为名称不匹配而无法赋值。
  2. GET请求的复杂类型参数绑定:对于GET请求,ASP.NET Core不会自动从查询字符串绑定复杂类型(比如你的ClientDetails类),需要显式指定参数来源。

解决方案

方案1:调整参数名并添加[FromQuery]特性(推荐)

先修改后端的Action方法,给参数加上[FromQuery]特性,确保框架从查询字符串中读取参数;同时保持前后端参数名称一致:

[HttpGet]
[Route("matter")]
// 添加[FromQuery]告诉框架从URL查询字符串绑定ClientDetails对象
public List<MatterLookup> LookupValuesForMatter([FromQuery] ClientDetails data) 
{
    // 这里编写你的业务逻辑,比如根据data.ClientId查询数据
    return yourDataService.GetMatterLookupByClientId(data.ClientId);
}

public class ClientDetails
{
    public string ClientId { get; set; }
}

然后修改前端AJAX代码,把参数名改成和后端一致的ClientId:

var clientId = $("#client").val();
// 参数名改为大写C开头的ClientId,和后端属性名匹配
var data = { ClientId: clientId };
$.ajax({
    type: "GET",
    url: "matter",
    data: data,
    success: function (response) {
        // 这里可以处理返回的MatterLookup列表
        console.log("成功获取项目详情:", response);
        // 示例:把数据渲染到下拉框
        // $("#matterSelect").empty();
        // response.forEach(item => {
        //     $("#matterSelect").append(`<option value="${item.Id}">${item.Name}</option>`);
        // });
    },
    error: function(xhr, status, error) {
        // 别忘了处理错误情况
        console.error("请求失败:", error);
    }
});

方案2:用JsonPropertyName保持前端参数名不变

如果前端代码已经写好不想修改,可以在后端的属性上添加[JsonPropertyName]特性,指定前端传递的参数名:

using System.Text.Json.Serialization;

public class ClientDetails
{
    // 指定前端传递的参数名是clientId(小写c)
    [JsonPropertyName("clientId")]
    public string ClientId { get; set; }
}

这种方式下,后端Action依然需要添加[FromQuery]特性,前端AJAX代码可以保持原样。

验证方式

发送请求后,你可以在浏览器的开发者工具中查看请求URL,应该会类似:/matter?ClientId=xxx(方案1)或/matter?clientId=xxx(方案2),后端就能正确获取到参数值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:39:04