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

如何在ASP.NET C# Web API 2控制器中实现按SalesmanId查询的接口

ASP.NET Web API 2 按SalesmanId查询接口实现方案

你现有代码仅支持查询全量订单、按主键ID查询单条订单,如需新增按SalesmanId查询的接口,可按以下步骤操作:

1. 确认前置配置

确保你的WebApiConfig.cs文件中已开启属性路由支持,在注册方法中添加如下代码:

config.MapHttpAttributeRoutes();

同时确认EF实体PrbSalesOrderTable中已正确映射数据库中的SalesmanId字段,字段类型和数据库保持一致。

2. 新增查询接口

推荐使用属性路由明确接口规则,在控制器中添加如下代码:

// 按SalesmanId查询关联的所有订单
[HttpGet]
[Route("api/Transaksi/Salesman/{salesmanId:int}")]
[ResponseType(typeof(IEnumerable<PrbSalesOrderTable>))]
public IHttpActionResult GetOrdersBySalesmanId(int salesmanId)
{
    // 参数合法性校验
    if(salesmanId <= 0)
    {
        return BadRequest("SalesmanId参数不合法");
    }
    // 按条件查询
    var orderList = db.PrbSalesOrderTables.Where(x => x.SalesmanId == salesmanId).ToList();
    if(!orderList.Any())
    {
        return NotFound();
    }
    return Ok(orderList);
}

3. 接口调用说明

直接发送GET请求到api/Transaksi/Salesman/5即可查询SalesmanId为5的所有关联订单。

如果不想使用属性路由,也可以走默认路由规则,通过查询参数传值:

[ResponseType(typeof(IEnumerable<PrbSalesOrderTable>))]
public IHttpActionResult GetBySalesmanId(int salesmanId)
{
    if(salesmanId <= 0)
    {
        return BadRequest("SalesmanId参数不合法");
    }
    var orderList = db.PrbSalesOrderTables.Where(x => x.SalesmanId == salesmanId).ToList();
    if(!orderList.Any())
    {
        return NotFound();
    }
    return Ok(orderList);
}

调用时发送GET请求到api/Transaksi?salesmanId=5即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 18:57:00