将多个Id参数传递给Web Api GET或DELETE请求

时间:2016-05-03 18:07:23

标签: c# asp.net-web-api

我有一个由2个密钥识别的商务实体,例如:

m_bDirty to true

现在使用ASP.NET Web Api,如何使HTTP GET或HTTP DELETE接受多个参数?目前,默认生成的模板只接受1个键:

class UserItem {
    [Key]
    [Column(Order = 1)]
    public string UserId {get;set;}
    [Key]
    [Column(Order = 2)]
    public string ItemName {get; set;}
    public int Count {get; set;}    
}

db是我的datacontext,我在ASP.NET Web Api 2中使用EntityFramework 6

2 个答案:

答案 0 :(得分:7)

如下所示映射您的路线将允许您传递两个参数,您可以通过这种方式添加更多这两个参数

    [HttpGet]
    [Route("api/item/{id1}/{id2}")]
    [ResponseType(typeof(UserItem))]
    public async Task<IHttpActionResult> GetUserItem(string id1, string id2)
    {
       UserItem item = await db.useritems.FindAsync(id1);
       ......
    }

答案 1 :(得分:1)

我已经能够从默认的WebApi设置发送多个参数。

只做

 Public async Task<IHttpActionResult> GetUserItem(string UserId, string ItemName)
 {
   UserItem item = await db.useritems.FirstOrDefault(c=>.UserId==UserId && c.ItemName==ItemName);
 }

你在哪里遇到问题?