如何在查询字符串中两次请求相同的参数?

时间:2013-12-19 11:22:34

标签: asp.net-mvc-4 asp.net-web-api

我正在尝试请求以下查询字符串url:api/item?name=storm&name=prest

我使用下面的代码,但无法使代码生效。

public class ItemController : ApiController
{
    private cdwEntities db = new cdwEntities();

    public HttpResponseMessage Get([FromUri] Query query)
    {
        var data = db.database_ICs.AsQueryable();

        if (query.name != null)
        {
            **data = data.Where(c => c.Name.Split("&").Contains(query.name));**

        }
        if (query.id!= null)
        {
            data = data.Where(c => c.ID== query.id);
        }

        if (!data.Any())
        {
            var message = string.Format("No data was found");
            return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
        }

        return Request.CreateResponse(HttpStatusCode.OK, data);
    }
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您无法在Querystring中传递相同的名称键。浏览器/代码未标识哪个是正确的值,如果您想要多个值,则将其作为对象传递。

答案 1 :(得分:0)

你可以使用post Api并发送[name]的数组。

 name = [item1,item2....]

 public void Post([FromBody] List<string> name) {


}